C#Restsharp GET方法请求将显示“无法解码JSON对象”

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

我正在Visual Studio 2019上使用C#winform并使用RestSharp。我已经用正确的输出在POSTMAN上测试了WEBAPI函数。

“”

所以我尝试在C#Winform上实现。我按以下方式转储POSTMAN代码(C#Restsharp):

var client = new RestClient("http://192.168.2.10:88/en/product/ajax_api_getProductInfoBatch");
var request = new RestRequest(Method.GET);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("Connection", "keep-alive");
request.AddHeader("Content-Length", "21");
request.AddHeader("Accept-Encoding", "gzip, deflate");
request.AddHeader("Host", "192.168.2.10:88");
request.AddHeader("Postman-Token", "f1ff99c7-dc02-40cb-b87a- 
a046cf106a96,e2b7d88d-cfc9-4c99-8117-ec48398e56ed");
request.AddHeader("Cache-Control", "no-cache");
request.AddHeader("Accept", "*/*");
request.AddHeader("User-Agent", "PostmanRuntime/7.18.0");
request.AddParameter("undefined", "{\n \"Item No\":\"3101\"\n}", 
ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

我修改了

request.AddParameter("undefined", "{\n \"Item No\":\"3101\"\n}"

to

request.AddParameter("application/json", "{\"Item No\":\"3101\"}", ParameterType.RequestBody);

因此,完整的代码将是

private void Button1_Click(object sender, EventArgs e)
    {
        var client = new RestClient("http://192.168.2.10:88/en/product/ajax_api_getProductInfoBatch");
        var request = new RestRequest(Method.GET);
        //request.AddHeader("cache-control", "no-cache");
        //request.AddHeader("Connection", "keep-alive");
        //request.AddHeader("Content-Length", "22");
        //request.AddHeader("Accept-Encoding", "gzip, deflate");
        //request.AddHeader("Host", "192.168.2.10:88");
        //request.AddHeader("Postman-Token", "86e877f8-5755-4e57-960a-eaa78b1e8b6c,da863548-65e0-4053-9cb3-b5760da94165");
        //request.AddHeader("Cache-Control", "no-cache");
        //request.AddHeader("Accept", "*/*");
        //request.AddHeader("User-Agent", "PostmanRuntime/7.18.0");
        //request.AddHeader("Content-Type", "text/plain");
        request.AddParameter("application/json", "{\"Item No\":\"3101\"}", ParameterType.RequestBody);
        IRestResponse response = client.Execute(request);
        var content = response.Content;
        textBox1.Text = content;
                }

但是在GET请求之后它仍然输出“无法解码JSON对象。”

任何人分享您的经验将不胜感激。或者还有其他方法可以在C#上执行GET / POST。谢谢。!

c# winforms
1个回答
0
投票

您可以使用httpclient并传递参数作为stringcontent,并且stringcontent的类型应为application / json。这是发帖请求

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