Foxtable(狐表)用户栏目专家坐堂 → 网盘api的post调用失败,请帮忙测试


  共有4395人关注过本帖平板打印复制链接

主题:网盘api的post调用失败,请帮忙测试

帅哥哟,离线,有人找我吗?
大红袍
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/21 16:39:00 [只看该作者]

 mark post上传文件

 

 看懂代码,你加入你对应的代码即可。

 

Dim file As String = "c:\test.txt"
Dim responseContent As String
Dim memStream As New IO.MemoryStream
Dim webRequest = System.Net.HttpWebRequest.Create("http://localhost:8080")
'边界符
Dim boundary As String = "---------------" + DateTime.Now.Ticks.ToString("x")
Dim beginBoundary As Byte() = Encoding.ASCII.GetBytes("--" & boundary & vbCrLf)
Dim endBoundary As Byte() = Encoding.ASCII.GetBytes(vbcrlf & "--" & boundary & "--" & vbcrlf)

Dim fileStream As new IO.FileStream(file, io.FileMode.Open, io.FileAccess.Read)

'设置属性
webRequest.Method = "POST"
webRequest.Timeout = 5000
webRequest.ContentType = "multipart/form-data; boundary=" & boundary

memStream.Write(beginBoundary, 0, beginBoundary.Length)

'写入文件1
Dim header As String = "Content-Disposition: form-data; name=""file"";filename=""" & FileIO.FileSystem.GetName(file) & """" & vbCrLf & "Content-Type: application/octet-stream" & vbCrLf & vbCrLf
Dim headerbytes As Byte() = Encoding.UTF8.GetBytes(header)
memStream.Write(headerbytes, 0, headerbytes.Length)

Dim buffer(1024) As Byte
Dim bytesRead As Integer = fileStream.Read(buffer, 0, buffer.Length)
While bytesRead > 0
    memStream.Write(buffer, 0, bytesRead)
    bytesRead = fileStream.Read(buffer, 0, buffer.Length)
End While

'写入最后的结束边界符
memStream.Write(endBoundary, 0, endBoundary.Length)
webRequest.ContentLength = memStream.Length

Dim requestStream = webRequest.GetRequestStream

memStream.Position = 0
Dim tempBuffer(memStream.Length - 1) As Byte
memStream.Read(tempBuffer, 0, tempBuffer.Length)
memStream.Close()

requestStream.Write(tempBuffer, 0, tempBuffer.Length)
requestStream.Close()
msgbox(5)
Dim httpWebResponse As Net.WebResponse = webRequest.GetResponse
msgbox(6)
Dim httpStreamReader As new Io.StreamReader(httpWebResponse.GetResponseStream, Encoding.GetEncoding("utf-8"))
responseContent = httpStreamReader.ReadToEnd

fileStream.Close()
httpWebResponse.Close()
webRequest.Abort()

msgbox( responseContent)

[此贴子已经被作者于2016/7/21 16:39:39编辑过]

 回到顶部
总数 17 1 2 下一页