【问题标题】:error with google drive upload multipart谷歌驱动器上传多部分错误
【发布时间】: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 中调试,但是

  1. 此请求未显示,
  2. 打开 Fiddler 时,响应全部为空]

正如您在代码中看到的,我使用 multipart 作为内容类型

我觉得奇怪的是,一旦上传数据返回,标题就不再包含任何内容类型,所以这可能是问题所在?

请指教

【问题讨论】:

  • 你自己做这个而不是使用图书馆的一个特殊原因?这可能会帮助developers.google.com/drive/api/v3/…
  • 嗨。我尽量减少外部依赖/库/包。
  • 嗨。有谁知道Content-Type 为何/如何消失?

标签: post google-api http-headers webclient


【解决方案1】:

答案似乎只是不使用MultipartFormDataContent

我基于这里的代码https://stackoverflow.com/a/29118333/240742

像魅力一样工作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-13
    • 1970-01-01
    • 2016-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多