Baidu云盘【文件API】接口学习 『一』
这几天很有兴致的学习了百度云盘文件API接口的使用;初步是想做一个在线android应用,应用中的文档是存放在百度云盘的。
主要是分一下几个步骤:
1.注册百度账号
2.登录百度开发者中心
3.创建移动应用,获取对应的(API Key Secret Key)
4.开通pcs API权限
6.开发应用
注意:
开通移动应用,获取key
获取token的时候我使用的安卓获取的方式
通过我写对应api的例子我发现,其实就两种情况:一种是get方式提交数据,另外一种是post方式提交数据
1.get方式提交数据,我们用获取云盘的信息为例:
获取云盘信息前我们要知道,我们要准备好什么数据:
请求参数:
url: 标明我们要访问的网址路径 值固定问“https://pcs.baidu.com/rest/2.0/pcs/quota”
method:标明我们是请求云盘信息 值固定为“info”
acceess_token:准入标识 值是我们自己申请的
接收返回参数:
quota:云盘总容量
used:云盘使用容量
request_id:该请求的表示,没啥用
返回的一个json串如下格式:{"quota":123794882560, "used":83573494688,"request_id":2853739529}
我在做的时候你使用Gson工具将json串转换到对应的entity类中了 代码如下:
/** * @param path 云盘存放路径 * @param name 要上传的文件 * @return * @throws Exception */ public FileBase uploadFile(String path,File file) throws Exception{ //模拟文件 String fileName="README.md"; file = new File(fileName); path="%2fapps%2fmybaidu%2f"; // 我用的是url编码过源码为:-> "/apps/mybaidu/ /" //将需要url传值的参数和url组装起来 String u ="https://pcs.baidu.com/rest/2.0/pcs/file?path="+path+file.getName()+"&method=upload&access_token=你自己申请的token值"; PostMethod filePost = new PostMethod(u); //post提交的参数 Part[] parts = {new FilePart(fileName,file)}; //设置多媒体参数,作用类似form表单中的enctype="multipart/form-data" filePost.setRequestEntity(new MultipartRequestEntity(parts, filePost.getParams())); HttpClient clients = new HttpClient(); //响应代码 int status = clients.executeMethod(filePost); System.out.println("成功上传"+path+fileName); BufferedReader buReader = new BufferedReader(new InputStreamReader(filePost.getResponseBodyAsStream(),"utf-8")); StringBuffer sb = new StringBuffer(); String line; while((line=buReader.readLine())!=null){ sb.append(line); } buReader.close(); // 解析成对象 Gson gson = new Gson(); FileBase cloudInfo = gson.fromJson(sb.toString(), FileBase.class); return cloudInfo; }
/** * @param path 云盘存放路径 * @param name 要上传的文件 * @return * @throws Exception */ public FileBase uploadFile(String path,File file) throws Exception{ //模拟文件 String fileName="README.md"; file = new File(fileName); path="%2fapps%2fmybaidu%2f"; // 我用的是url编码过源码为:-> "/apps/mybaidu/ /" //将需要url传值的参数和url组装起来 String u ="https://pcs.baidu.com/rest/2.0/pcs/file?path="+path+file.getName()+"&method=upload&access_token=你自己申请的token值"; PostMethod filePost = new PostMethod(u); //post提交的参数 Part[] parts = {new FilePart(fileName,file)}; //设置多媒体参数,作用类似form表单中的enctype="multipart/form-data" filePost.setRequestEntity(new MultipartRequestEntity(parts, filePost.getParams())); HttpClient clients = new HttpClient(); //响应代码 int status = clients.executeMethod(filePost); System.out.println("成功上传"+path+fileName); BufferedReader buReader = new BufferedReader(new InputStreamReader(filePost.getResponseBodyAsStream(),"utf-8")); StringBuffer sb = new StringBuffer(); String line; while((line=buReader.readLine())!=null){ sb.append(line); } buReader.close(); // 解析成对象 Gson gson = new Gson(); FileBase cloudInfo = gson.fromJson(sb.toString(), FileBase.class); return cloudInfo; }
上面代码成功后我们就会在/apps/mybaidu/目录下找到README.md文件
上面代码执行还要倒入对应的jar包:下载
commons-codec-1.3.jar
commons-httpclient-3.0.jar
commons-logging.jar
gson-2.2.1.jar
jsoup-1.6.3.jar
其他的api怎么用百度给了一个很好的演示平台:
好了剩下的就大家自己去模式吧!
用什么问题联系我我们一起探讨----ydcun