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()?你能發佈你得到的錯誤嗎? –