【发布时间】:2018-07-16 10:07:09
【问题描述】:
我正在尝试将包含一些元数据的文件上传到谷歌驱动器
基本上是我的代码:
Sub DriveMultiUpload(Bytes As Byte(), Name As String)
SetAuthHeaders("https://www.googleapis.com/auth/drive")
Dim mp = New MultipartFormDataContent
mp.Add(New StringContent(Name), "name")
mp.Add(New ByteArrayContent(Bytes))
Dim pb = mp.ReadAsByteArrayAsync.Result
Headers("Content-Type") = "multipart/related"
Dim response As Byte()
Dim ret = New WebInfo(Of String)
Try
response = UploadData("https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart", "POST", pb)
Catch ex As WebException
If ex.Response IsNot Nothing Then ret.Result = New StreamReader(ex.Response.GetResponseStream).ReadToEnd
End Try
End Sub
我得到的错误是:
错误的内容类型。请使用多部分。
[顺便说一句,我尝试在 Fiddler 中调试,但是
- 此请求未显示,
- 打开 Fiddler 时,响应全部为空]
正如您在代码中看到的,我使用 multipart 作为内容类型
我觉得奇怪的是,一旦上传数据返回,标题就不再包含任何内容类型,所以这可能是问题所在?
请指教
【问题讨论】:
-
你自己做这个而不是使用图书馆的一个特殊原因?这可能会帮助developers.google.com/drive/api/v3/…
-
嗨。我尽量减少外部依赖/库/包。
-
嗨。有谁知道
Content-Type为何/如何消失?
标签: post google-api http-headers webclient