Baidu云盘【文件API】接口学习 『一』

这几天很有兴致的学习了百度云盘文件API接口的使用;初步是想做一个在线android应用,应用中的文档是存放在百度云盘的。

主要是分一下几个步骤:

1.注册百度账号

2.登录百度开发者中心

3.创建移动应用,获取对应的(API Key   Secret Key)

4.开通pcs API权限

5.获取ACCESS_token(认证编码)

6.开发应用

注意:

开通移动应用,获取key

获取token的时候我使用的安卓获取的方式

Baidu云盘【文件API】接口学习 『一』

通过我写对应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怎么用百度给了一个很好的演示平台

Baidu云盘【文件API】接口学习 『一』

好了剩下的就大家自己去模式吧!

用什么问题联系我我们一起探讨----ydcun

相关推荐