Если у меня есть необработанный HTTP-ответ в виде строки:
HTTP / 1.1 200 OK
Дата: вторник, 11 мая 2010 г. 07:28:30 GMT
Истекает: -1
Cache-Control: приватный, max-age = 0
Content-Type: text / html; кодировка = UTF-8
Сервер: gws
X-XSS-защита: 1; Режим = блок
Подключение: закрыть
<!doctype html><html>...</html>
Есть ли простой способ, которым я могу разобрать его в HttpListenerResponse
объект? Или, по крайней мере, какой-нибудь объект .NET, поэтому мне не нужно работать с необработанными ответами.
В настоящее время я занимаюсь извлечением пар ключ / значение заголовка и установкой их в HttpListenerResponse. Но некоторые заголовки не могут быть установлены, и тогда я должен вырезать тело ответа и записать его в OutputStream. Но тело может быть сжато, или это может быть изображение, которое я пока не могу получить. И некоторые ответы содержат случайные символы везде, что выглядит как проблема кодирования. Это много неприятностей.
Я получаю сырой ответ, потому что я использую SOCKS для отправки HTTP-запроса. Программа, над которой я работаю, в основном является HTTP-прокси, который может маршрутизировать запросы через SOCKS-прокси, как это делает Privoxy.