我正在尝试上传一个带有一些元数据的文件到谷歌驱动器
这是我的基本代码:
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
我得到的错误是:
错误的内容类型。请使用多部分。
[BTW,我尝试在Fiddler中调试,但
- 此请求未显示
- 当Fiddler打开时,响应全部为空]
正如您在代码中看到的,我正在使用multipart作为内容类型
然而,我发现奇怪的是,一旦上传数据返回,Headers就不再包含任何内容类型,所以这可能是问题所在?
请告知
答案似乎只是不使用MultipartFormDataContent
相反,我是基于这里的代码https://stackoverflow.com/a/29118333/240742
就像一个魅力