0
我正在尝试创建代理,基于文本的请求得到正确处理(js,css,html)。但是当我尝试加载图像时,我收到图像包含错误的消息。如何通过http传输图像
我已经尝试了多种方式发送这个通过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发送。
只看你的代码和文档,我建议ASCII不是正确的编码,因为图像可能包含正常的ASCII字符集以外的字符。请参阅:https://msdn.microsoft.com/en-us/library/ms404377(v=vs.110).aspx –
ASCII编码仅用于基于文本的请求,我没有使用图像。除非可能ASCII是默认的 –
是否有一个原因,你正在阅读流的方式,而不是使用Image.FromStream()?你能发布你得到的错误吗? –