Как передать изображение по http

Я пытаюсь создать прокси, текстовые запросы обрабатываются должным образом (JS, CSS, HTML). Но когда я пытаюсь загрузить изображение, я получаю сообщение, что изображение содержит ошибки.

Я пробовал несколько способов отправить это по http, но ни один из них еще не работал. Вот соответствующий код

 try
        {
            StringBuilder responseString = new StringBuilder();
            HttpWebRequest clientRequest = (HttpWebRequest)WebRequest.Create(url);
            HttpWebResponse response = (HttpWebResponse)clientRequest.GetResponse();
            string headers = response.Headers.ToString();
            string contentType = response.Headers.Get("content-type");
            var encoding = ASCIIEncoding.ASCII;
            if (contentType.IndexOf("image") > -1)
            {
                using (BinaryReader stream = new BinaryReader(response.GetResponseStream()))
                {
                    var bytes = new byte[1024];
                    while (true)
                    {
                        var n = stream.Read(bytes, 0, bytes.Length);
                        if (n == 0)
                        {
                            break;
                        }
                        responseString.Append(bytes);
                    }
                    return "HTTP/1.1 200 \n" + headers + responseString.ToString();
                }
            }
            else
            {
                using (var reader = new System.IO.StreamReader(response.GetResponseStream(), encoding))
                {

                    return "HTTP/1.1 200 \n" + headers + reader.ReadToEnd();
                } 
            }
        catch
        {
            addToList("Request failed");
            return "Request failed";
        }
    }

Если возможно, я бы предпочел сохранить строку ответа http, чтобы отправить ее поверх уже существующего NetworkStream.

1 ответ

Решение состояло в том, чтобы передать ответ непосредственно клиенту и не преобразовывать его сначала в строку. Заголовки отправляются в строке раньше.

Другие вопросы по тегам