Restsharp 错误“无法发送具有此动词类型的内容正文。”

Dou*_*ugM 2 vb.net restsharp

我正在使用 Restsharp 调用 eBay API。代码如下。

    Async Sub fulfillmentPolicies()

        Dim request As New RestRequest(sFulfillmentURL, Method.Get)
        request.AddHeader("Authorization", "Bearer " & uT.access_token)
        request.AddHeader("Content-Type", "application/json")
        Try
            Dim response = Await client.GetAsync(request)
            If response.StatusCode = HttpStatusCode.OK Then
                Dim sR As String = response.Content
                Dim pP As PaymentPolicy = JsonSerializer.Deserialize(Of PaymentPolicy)(sR)
            End If
        Catch ex As Exception

        End Try
    End Sub
Run Code Online (Sandbox Code Playgroud)

客户端设置在此过程之外,因为它被多次使用。

在测试中,当我进行此调用时,我收到错误消息“无法发送具有此动词类型的内容正文”。我可以使用相同的标头在 Postman 中成功进行此调用。对这里发生的事情有什么想法吗?有办法修复吗?

Gar*_*rey 13

Content-Type描述REQUEST中主体的格式。它不应该用于告诉服务器要返回什么类型的数据。

Content-Type 标头的存在会导致 .NET 库中出现错误,因为它试图强制执行不包含带有 GET 的正文的规则,并且不包含暗示存在正文的标头。

您应该能够删除该标头,但某些 API 可能不兼容。最好设置Accepts为表明您接受 JSON 作为响应。