RestSharp 无法使用 get() 方法发送正文内容

问题描述 投票:0回答:1

我使用了一家快递公司的 API,如果我使用 POST 方法,我必须在 Get 方法中发送正文内容,它说这是不允许的,当使用 get 时,它向我发送消息,您无法在 get 方法中发送正文内容。 我正在使用 .Net Framework 4.8 这是我的代码:

Dim client = New RestClient("https://smartlane.com.pk/api/production/consignment/track")
        'client.Timeout = -1
        Dim request = New RestRequest()
        request.Method = Method.Get
        request.AddHeader("Authorization", "kA0HzgWQRaYRepL8ol8jmkHVJJIZRDQfx1zEqB")
        request.AddHeader("Content-Type", "application/json")
        Dim body = "{" & vbLf & "    ""store_order_id"":[" & vbLf & "        ""1001"",""1002""" & vbLf & "    ]" & vbLf & "}"
        request.AddParameter("application/json", body, ParameterType.RequestBody)
        Dim response = client.Execute(request)
        Console.WriteLine(response.Content)
asp.net vb.net httprequest restsharp
1个回答
0
投票

正如其他人已经说过的,带有正文的 GET 请求非常不寻常。也就是说,如果您使用与默认值不同的

HttpMessageHandler
,您应该能够在 .NET Framework 上实现此功能。我不熟悉 VB.Net,但希望您能够使用我的 C# 示例。

参考

System.Net.Http.WinHttpHandler
nuget 包,并像这样初始化
RestClient

WinHttpHandler winHttpHandler = new WinHttpHandler();
HttpClient httpClient = new HttpClient(winHttpHandler);
RestClientOptions restClientOptions = new RestClientOptions()
{
    BaseUrl = new Uri(@"https://smartlane.com.pk/api/production/consignment/track", UriKind.Absolute),
};
RestClient client = new RestClient(httpClient, restClientOptions);

RestRequest request = new RestRequest();
request.Method = Method.Get;
request.AddHeader("Authorization", "kA0HzgWQRaYRepL8ol8jmkHVJJIZRDQfx1zEqB");
request.AddHeader("Content-Type", "application/json");
string body = "{ \"store_order_id\" : [ \"1001\", \"1002\" ] }";
request.AddParameter("application/json", body, ParameterType.RequestBody);
RestResponse response = client.Execute(request);
Console.WriteLine(response.Content);

还有一个接受

RestClient
HttpMessageHandler
构造函数的重载,您可能可以使用它来使代码更加简洁。

© www.soinside.com 2019 - 2024. All rights reserved.