Как прочитать ответ json при возникновении ошибки 422 (Unprocessable Entity) в C# Visual Studio

Я отправляю некоторые данные JSON в веб-службу с помощью метода "PUT", но у меня возникает ошибка 422 unprocessable entity.
Как увидеть ответ сервера в формате JSON? Я углубился в исключение, но до сих пор не могу найти ответ json.

Ex:

JSON-запрос:

{
  customer:
  {
    name: "asd",
    address: "test"
  }
}

и если все в порядке, он должен ответить мне некоторыми данными JSON.

Ex:

{
  customer:
  {
    id: 1,
    name: "asd",
    address: "test"
  }
}

person Márcio Duarte    schedule 11.06.2012    source источник


Ответы (3)


Вы можете поймать WebExpection и получить от него ответ и извлечь правильное сообщение об ошибке:

Код :

catch (WebException ex)
{
    using (var sr = new StreamReader(ex.Response.GetResponseStream()))
    {
       var data = sr.ReadToEnd();                    
       throw new ApplicationException(data);
    }                
}
person user3470814    schedule 28.03.2014

Вы можете вручную протестировать эту службу отдыха с помощью Fiddler.
422 Объяснение ошибки HTTP: Запрос был сформирован правильно, но его невозможно было выполнить из-за семантических ошибок.
Поэтому проверьте, например, правильность данных JSON, которые вы отправляете. формат.

person lucask    schedule 11.06.2012

Чтобы ответить на ваш вопрос: вы не можете получить подробный ответ в json с указанием синтаксической ошибки, чем у вас есть. Это будет ручной процесс проб и ошибок, чтобы найти ошибку.

Как упоминалось пользователем 3470814, вы должны поймать такую ​​​​ошибку и что-то сделать с ней в своем приложении.

И, как упоминал lucask, Fiddler поможет вам увидеть точную строку, отправленную в вашем запросе.

person jmecwel    schedule 14.01.2016