CET Restsharp GET Method Request покажет «Ни один объект JSON не может быть декодирован» - PullRequest
0 голосов
/ 17 октября 2019

Я использую C # winform в Visual Studio 2019 и использую RestSharp. Я проверил функцию WEBAPI на POSTMAN с правильным выводом.

Поэтому я пытаюсь реализовать на 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}"

до

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 не может быть декодирован».

Любой, кто поделится вашим опытом, будет оценен. или есть другие способы сделать GET / POST на C #. спасибо.!

1 Ответ

0 голосов
/ 17 октября 2019

Вы можете использовать httpclient и передавать параметры как stringcontent, а тип должен быть application / json для stringcontent. Это для почтового запроса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...