2009-10-28 5 views
0

У меня возникли некоторые проблемы захвата-х поток ответа из запроса, возвращая код состояния 422.Как получить поток ответа на не код 201 Статус

HttpWebResponse objResponse = (HttpWebResponse)wr.GetResponse(); 

wr.GetResponse бросает WebException, потому что status code isnt 201.
Так что я никогда не смогу получить поток ответов с удаленного сервера. Но он возвращает важную информацию в ResponseStream.

Так что мой вопрос заключается в том, как получить ResponseStream по запросу, который не возвращает 201, но все же возвращает данные.

ответ

2

Исключенное WebException содержит ссылку на ответ, из которого вы можете получить пар ответов.

catch(WebException ex) 
{ 
    ex.Response.GetResponseStream(); 
} 
1

Используйте TcpClient и отправьте запрос HTTP вручную. Это довольно простой формат запроса.

+0

Угадайте, что может быть решением. Но разве нет способа использовать HttpWebResponse/HttpWebRequest –

+0

Я предполагаю, что вы можете протестировать StatusCode, а затем посмотреть в коллекцию Headers, чтобы узнать, какую информацию заголовка сервер вернул вам. –

+0

Ну да, возможно, это возможно. Но дело в том, что оно возвращает данные в ResponseBody (ResponseStream). Поэтому я не могу достичь этих данных при просмотре заголовков –