Удаленный сервер вернул ошибку: (400) - PullRequest
0 голосов
/ 21 июня 2020

Я пытаюсь отправить json данные в API, но все равно получаю ошибку

System. Net .WebException: удаленный сервер вернул ошибку: (400) Bad Request

Ниже приведен метод

public string TestSubmitRequest()
{
    try
    {
        string result = string.Empty;

        //var httpWebRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create("https://mytest/v1/Request");
        var httpWebRequest = System.Net.WebRequest.CreateHttp("https://mytest.com/v1/Request");
        httpWebRequest.ContentType = "application/json; charset=utf-8";
        httpWebRequest.Method = "POST";

        using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
        {
            string json = new JavaScriptSerializer().Serialize("{\"Name\":\"chamara\",\"Email\":\"a@e.com\",\"Phone\":\"5345345\"," +
                "\"RequireTeleHealth\":false,\"PreferredTime\":0,\"PreferredContactType\":1,\"FindOtherPsychologists\":false,\"Postcode\"" +
                ":\"3153\",\"Location\":{\"Suburb\":\"Bayswater\",\"Postcode\":\"3153\"},\"Issues\":[{\"Description\":\"Depression\"}]," +
                "\"FundedPrograms\":[],\"ShortListedPsychologists\":[{\"Id\":\"047846\"},{\"Id\":\"156683\"},{\"Id\":\"158291\"},{\"Id\":\"019526\"},{\"Id\":\"031396\"}]}");
            streamWriter.Write(json);
            streamWriter.Flush();
        }

        var httpResponse = (System.Net.HttpWebResponse)httpWebRequest.GetResponse();
        using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
        {
            result = streamReader.ReadToEnd();
        }

        return result;

    }catch(Exception ex)
    {
        throw ex;
    }
}

Однако тот же запрос работает и возвращает ожидаемый результат на Postman

введите описание изображения здесь

Что не так с кодом C#?

1 Ответ

2 голосов
/ 21 июня 2020

Используйте это, это будет работать. Это уже json, поэтому не нужно его сериализовать дальше.

string json = "{\"Name\":\"chamara\",\"Email\":\"a@e.com\",\"Phone\":\"5345345\"," +
                "\"RequireTeleHealth\":false,\"PreferredTime\":0,\"PreferredContactType\":1,\"FindOtherPsychologists\":false,\"Postcode\"" +
                ":\"3153\",\"Location\":{\"Suburb\":\"Bayswater\",\"Postcode\":\"3153\"},\"Issues\":[{\"Description\":\"Depression\"}]," +
                "\"FundedPrograms\":[],\"ShortListedPsychologists\":[{\"Id\":\"047846\"},{\"Id\":\"156683\"},{\"Id\":\"158291\"},{\"Id\":\"019526\"},{\"Id\":\"031396\"}]}";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...