您好我正在尝试从网站下载 .PNG 图像,但我需要在下载图像的请求中发送我的标头。我的最终目标是将图像直接加载到流中,而不是将其保存到文件中。
这是我获取图像 HTML 的代码:
public string Request(string type, string page, string data = "", string referer = "")
{
using(TcpClient tcp = new TcpClient(this.SiteName, this.Port))
{
byte[] headers = Encoding.Default.GetBytes(this.MakeHeaders(type, page, referer, data));
using (NetworkStream ns = tcp.GetStream())
{
ns.Write(headers, 0, headers.Length);
using (StreamReader sr = new StreamReader(ns, Encoding.Default))
{
string html = sr.ReadToEnd();
return html;
}
}
}
}
我发送的标题如下所示:
GET /image.php HTTP/1.1
Host: greymatter.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Connection: close
Cache-Control: max-age=0
Cookie: PHPSESSID=s0v17eafosj5ctb5v6keu3lh57; __cfduid=d10aef4fcfd052e1f59fba9832cedf4491374611636
我在本地保存的 PNG 文件开头为:
67f
‰PNG
保存的 PNG 文件已损坏 - 无法查看!我不明白为什么会这样?