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";
}
}
可能であれば、私はすでに存在するNetworkStreamを介して送信するようにhttp応答文字列を保持することをお勧めします。
あなたのコードとドキュメントを見るだけで、画像には通常のASCII文字セット以外の文字が含まれている可能性があるため、ASCIIは正しいエンコードではないことをお勧めします。参照してください:https://msdn.microsoft.com/en-us/library/ms404377(v=vs.110).aspx –
ASCIIエンコーディングは、テキストベースの要求にのみ使用され、私は画像にnoneを使用しています。おそらくASCIIがデフォルトでない限り –
Image.FromStream()を使用するのではなく、ストリームを読んでいる理由はありますか?あなたはあなたが得ているエラーを投稿できますか? –