Удаленный сервер возвратил ошибку (400) Bad Request, статус ProtocolError - PullRequest
0 голосов
/ 25 декабря 2018

Я не смог найти решение в других подобных вопросах.Я получаю Удаленный сервер возвратил ошибку: (400) Ошибка неверного запроса при выполнении следующего кода.

string url = @"http://api.dwaybill.com/" + cid + 
               "/orders.json?v=" + version + "&key=" + key + 
               "&customer_number=" + customer_number + 
               "&password=" + password;

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
UTF8Encoding encoding = new UTF8Encoding();

byte[] bytes1 = encoding.GetBytes(@"{"Here is the json text that i testet and is correct"}");

request.Method = "POST";
request.ContentType = "application/json";
request.ContentLength = bytes1.Length;

using (Stream sendStream = request.GetRequestStream())
{
    sendStream.Write(bytes1, 0, bytes1.Length);
}
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
    using (Stream stream = response.GetResponseStream())
    {
        using (StreamReader reader = new StreamReader(stream))
        {
            html = reader.ReadToEnd();
        }
    }
}
Console.WriteLine(html);

При получении ответа через (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) я получаю 400 неправильный запрос ошибка.

Как я могу решить эту проблему?Что мне делать?

edit: это API, к которому я пытаюсь сделать запрос: https://github.com/digwaybill/Digital-Waybill-API

1 Ответ

0 голосов
/ 25 декабря 2018

Кажется, ошибка из-за пропущенных заголовков.

Пожалуйста, добавьте ниже заголовки перед запросом в формате:

request.Headers["X-My-Custom-Header"] = "the-value";

Для вашего примера это будет:

request.Headers["Accept"] = " application/json";

Пожалуйста, обновите строку для JSON, как показано ниже.Джсону нужен ключ и ценность.Не стесняйтесь обновлять name до любой другой строки.Также двойные кавычки мешают формату строки, который должен быть экранирован.

byte[] bytes1 = encoding.GetBytes("{\"name\":\"Here is the json text that i testet and is correct\"}");
...