登录
首页 >  Golang >  Go问答

LinkedIn Vector Asset API 不断返回 400 错误请求

来源:stackoverflow

时间:2024-03-19 22:12:28 396浏览 收藏

LinkedIn 的 Vector Asset API 使用 registerupload 请求提供 URL 和标头来上传媒体。然而,尝试上传单个图像时会收到 400 错误请求响应。尽管文档中提供了信息,但仍无法解决此问题。本文旨在找出错误所在,并提供有效的解决方案。

问题内容

我有以下方法,使用 registerupload 请求提供的 url 和标头将媒体“上传”到 linkedin。我一直在尝试各种不同的方法来尝试让它发挥作用,但没有成功。按原样,当我尝试上传单个图像时,这会返回 400 bad request 响应。在这种特殊情况下,该文档似乎没有多大帮助。我在这里做错了什么?

func (li *LinkedIn) UploadMedia(URL string, Headers map[string]string, File string) (err error) {
    client := &http.Client{}
    file, err := os.Open(File)
    if err != nil {
        return
    }
    defer file.Close()
    fi, _ := file.Stat()

    request, err := http.NewRequest("PUT", URL, file)
    if err != nil {
        return
    }
    request.Header.Set("Authorization", "Bearer "+li.Token)
    request.Header.Set("X-Restli-Protocol-Version", "2.0.0")
    request.Header.Set("Accept", "*/*")
    if val, ok := Headers["media-type-family"]; ok && val == "STILLIMAGE" {
        request.Header.Set("Content-Type", "text/plain")
    }
    for i, v := range Headers {
        request.Header.Set(i, v)
    }
    request.ContentLength = fi.Size()
    request.TransferEncoding = []string{"identity"}
    response, err := client.Do(request)
    if err != nil {
        return
    }
    defer response.Body.Close()
    if response.StatusCode != 200 && response.StatusCode != 201 {
        log.Println(File)
        log.Println(request)
        for name, values := range response.Header {
            // Loop over all values for the name.
            fmt.Println(name, "-", values)
        }
        dump, _ := httputil.DumpRequestOut(request, false)
        log.Println(string(dump))
        log.Println(request.ContentLength)
        log.Println(response.StatusCode)
        log.Println(response)
        responseBody, _ := ioutil.ReadAll(response.Body)
        err = errors.New(string(responseBody))
    }
    return
}

在看到以下问题后添加了 accept 标头:linkedin v2 矢量资源上传错误 400


解决方案


Content-Type 更改为 application/octet-stream 并将请求方法从 PUT 更改为 POST 有效,即使在其文档中另有说明

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>