fenhanxue 发表于 2014-11-20 19:32:11

post 上传图片,如何上传标准multipart/form-data编码方式,HTTP RFC1867协议 格式?

HTTP接口说明是这样的:

上传图片返回结果.
请求URL
http://api.ysdm.net/create.json(扩展名支持.txt|.xml)
支持格式
txt,xml,json
HTTP请求方式
POST
请求参数
        必选        类型        说明
username        true        string        用户名。
password        true        string        用户密码。(支持32位MD5)
typeid        true        int        题目类型
softid        true        int        软件ID,开发者可自行申请。
softkey        true        string        软件KEY,开发者可自行申请。
image        true        byte        题目截图或原始图二进制数据。注意事项
1.开发时需要修改HTTP请求默认超时时间,具体数值需要大于任务超时的timeout参数。
2.POST上传请求包括图片上传格式为标准multipart/form-data编码方式,HTTP RFC1867协议
返回结果
正确返回
SON:{"Result":"答题结果","Id":"题目Id(报错使用)"}
错误返回
JSON:{"Error":"错误提示信息","Error_Code":"","Request":""}

我的代码是这样的:
Dim $pic_file = @ScriptDir & "\1.png"
Dim $yunsu_username = 'qiuzhengyu'
Dim $yunsu_author = 'qiuzhengyu'
Dim $yunsu_password = 'a111222'
Dim $yunsu_typeid = '3040';四位   3050 为五位
Dim $yunsu_timeout = '60'
Dim $yunsu_softid = '2399'
Dim $yunsu_softkey = 'e059bab0823f4411a33807e0c4d3d18c'
Dim $yunsu_image;二进制数据


$oHTTP = ObjCreate("winhttp.winhttprequest.5.1")

$temp =yunsu_recognize_pic()
MsgBox(0,"",$temp);收不到返回参数
$oHTTP = 0


Func yunsu_recognize_pic()
        Local $file = FileOpen($pic_file,16)
        Local $temp = FileRead($file)
        FileClose($file)
       
        $oHTTP.Open("post", "http://api.ysdm.net/create.json",False)
    $oHTTP.setRequestHeader("Content-Type","application/x-www-form-urlencoded")

        $oHTTP.Send("username="&$yunsu_username&"&password="&$yunsu_password&"&typeid="&$yunsu_typeid & _
                    "&softid="&$yunsu_softid&"&softkey="&$yunsu_softkey&"&image="&$temp)
        Local $temp = $oHTTP.responseBody
        $temp = BinaryToString($temp,4)
        Return $temp
EndFunc但是得不到正确数据,是不是这个图片上传的这里出问题了,求帮忙瓦

fenhanxue 发表于 2014-11-25 12:23:17

期待大神出现。。。

fenhanxue 发表于 2014-11-28 16:40:08

期待大神出现。。。
页: [1]
查看完整版本: post 上传图片,如何上传标准multipart/form-data编码方式,HTTP RFC1867协议 格式?