【发布时间】:2010-12-20 20:11:38
【问题描述】:
我有这样的网址:
http://www.matweb.com/search/DataSheet.aspx?MatGUID=849e2916ab1541be9ff6a17b78f95c82
我想使用此代码从该页面下载源代码:
private static string urlTemplate = @"http://www.matweb.com/search/DataSheet.aspx?MatGUID=";
static string GetSource(string guid)
{
try
{
Uri url = new Uri(urlTemplate + guid);
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
webRequest.Method = "GET";
HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();
Stream responseStream = webResponse.GetResponseStream();
StreamReader responseStreamReader = new StreamReader(responseStream);
String result = responseStreamReader.ReadToEnd();
return result;
}
catch (Exception ex)
{
return null;
}
}
当我这样做时,我得到:
您似乎没有启用 cookie。 MatWeb 需要启用 cookie。
好的,我明白了,所以我添加了几行:
CookieContainer cc = new CookieContainer();
webRequest.CookieContainer = cc;
我明白了:
您的 IP 地址因过度使用而受到限制。当公司中的许多人或通过互联网服务提供商共享 IP 地址时,问题可能会更加复杂。对于给您带来的任何不便,我们深表歉意。
我可以理解这一点,但是当我尝试使用网络浏览器访问此页面时,我没有收到此消息。我该怎么做才能获得源代码?一些 cookie 或 http 标头?
【问题讨论】:
标签: c# cookies httpwebrequest http-headers