Получить ответ сервера с помошью HttpWebResponse - C#
Формулировка задачи:
Здравствуйте!
Возможно, сказывается то, что уже даже не ночь и мозги не варят, но столкнулся с проблемой.
У меня есть массив
byte[]
в котором лежит текст обычногоHTTP-запроса
. Хост и порт я из этого запроса уже вытянул. Вот подскажите, как мне теперь из этого всего получитьответ
от сервера в видеHttpWebResponse
? Массив byte[] с запросом вHttpWebRequest
не засовывается, а безHttpWebRequest
нельзя получить иHttpWebResponse
. Рассматривал ещё вариант с отправкой данных просто черезSocket
, но в таком случае я тоже не смогу получить ответ вHttpWebResponse
. Благодарю за внимание!Решение задачи: «Получить ответ сервера с помошью HttpWebResponse»
textual
Листинг программы
private byte[] GetRequest(Socket client) { try { NetworkStream ns = new NetworkStream(client); StreamReader sr = new StreamReader(ns, Encoding.ASCII); client.ReceiveTimeout = 10 * 1000; string header = ""; byte[] arr = null; int contLen = 0; using (MemoryStream ms = new MemoryStream()) { while (!string.IsNullOrEmpty(header = sr.ReadLine())) { if (header.ToLowerInvariant().Contains("content-length")) { string[] spl = header.Split(new string[] { ": ", ":" }, StringSplitOptions.RemoveEmptyEntries); int.TryParse(spl[1], out contLen); } arr = Encoding.ASCII.GetBytes(header + "\r\n"); ms.Write(arr, 0, arr.Length); } arr = Encoding.ASCII.GetBytes("\r\n"); ms.Write(arr, 0, arr.Length); string tmps = Encoding.ASCII.GetString(ms.ToArray()); int num = 0; byte[] buffer = new byte[client.ReceiveBufferSize]; // while ((contLen > 0) && ((num = client.Receive(buffer)) > 0)) // { // ms.Write(buffer, 0, num); // contLen -= num; // } //} ns = new NetworkStream(client); while ((num = ns.Read(buffer, 0, buffer.Length)) > 0) { ms.Write(buffer, 0, num); } byte[] buff = ms.ToArray(); return ms.ToArray(); } } catch (Exception ex) { Logger.OnLog(ex.Message); return null; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д