找回密码
 加入
搜索
查看: 5093|回复: 3

[IE类操作] 求教百度个人云存储API

[复制链接]
发表于 2012-9-7 08:27:10 | 显示全部楼层 |阅读模式
前段时间申请了个百度个人云存储的PCS开放平台。
各类GET查询接口很容易调用,但是POST得上传文件就不懂了。


百度的POST帮助:

方式一:

POST /rest/2.0/pcs/quota?key2=value2&key3=value3 HTTP/1.1
User-Agent: curl/7.12.1 (x86_64-redhat-linux-gnu) libcurl/7.12.1 OpenSSL/0.9.7a zlib/1.2.1.2 libidn/0.5.6
Pragma: no-cache
Accept: */*
Host:pcs.baidu.com
Content-Length:123
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryS0JIa4uHF7yHd8xJ

------WebKitFormBoundaryS0JIa4uHF7yHd8xJ
Content-Disposition: form-data; name="key1"

value1
------WebKitFormBoundaryS0JIa4uHF7yHd8xJ--


方式二:

POST /rest/2.0/pcs/quota HTTP/1.1
User-Agent: curl/7.12.1 (x86_64-redhat-linux-gnu) libcurl/7.12.1 OpenSSL/0.9.7a zlib/1.2.1.2 libidn/0.5.6
Pragma: no-cache
Accept: */*
Host:pcs.baidu.com
Content-Length:123
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryS0JIa4uHF7yHd8xJ

------WebKitFormBoundaryS0JIa4uHF7yHd8xJ
Content-Disposition: form-data; name="key1"

value1
------WebKitFormBoundaryS0JIa4uHF7yHd8xJ
Content-Disposition: form-data; name="key2"

value2
------WebKitFormBoundaryS0JIa4uHF7yHd8xJ
Content-Disposition: form-data; name="key3"

value3
------WebKitFormBoundaryS0JIa4uHF7yHd8xJ--


上传文件的API说明:

upload(单文件)

功能:创建文件。百度PCS服务支持最大2G的单文件上传,如果需要支持超大文件的断点续传,请参考 分片文件上传的upload方法。

HTTP请求方式 | 接口URL:
POST https://pcs.baidu.com/rest/2.0/pcs/file

请求参数
参数名
类型
是否必须  描述

method  string  是  固定值,upload  
access_token  string  是  开发者准入标识。HTTPS调用时必须使用  
path  string  是  上传文件路径(包含上传的文件名称)  
file  char[]  是  上传文件的内容  

注:以上四个参数中file需通过post表单传递,其他三个参数需通过query_string传递。

返回结果
{
    "path":"\/apps\/yunform\/music\/hello",
    "size":13,
    "ctime":1331184269,
    "mtime":1331184269,
    "md5":"59ca0efa9f5633cb0371bbc0355478d8",
    "fs_id":3528850315,
    "request_id":4043312669
}


根据上述信息我写了以下POST代码,但无效。
$token="xxxxxxxxxxxxxxxxxxxxxxxx"
$url="https://pcs.baidu.com/rest/2.0/pcs/file"
$postdata="method=upload&path=%2Fapps%2Fxxx%2F&file=1.txt&access_token="&$token

$oIE=ObjCreate("microsoft.xmlhttp")
$oIE.Open("POST",$url,false)
$oIE.setRequestHeader("Pragma", "no-cache")
$oIE.setRequestHeader("Accept","*/*")
$oIE.setRequestHeader("Content-Length","123")
$oIE.setRequestHeader("Content-Type","multipart/form-data; boundary=----WebKitFormBoundaryS0JIa4uHF7yHd8xJ")
$oIE.setRequestHeader("Referer","pcs.baidu.com")
$oIE.Send($postdata)

$data=$oIE.responseText

msgbox(0,'ok',$data)
还请高手指点一二,感谢您的分析和观看!!!
 楼主| 发表于 2012-9-7 08:29:03 | 显示全部楼层
是否协议头信息写错了呢,还是要将文件二进制读入在POST?
发表于 2012-9-7 11:04:21 | 显示全部楼层
同求哇,哈哈,学习一下
 楼主| 发表于 2012-9-9 14:14:22 | 显示全部楼层
求高人出手啊。。。。
主要是想知道上传文件是否要用二进制数据,该怎么用呢
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-6 18:23 , Processed in 0.076909 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表