我要获取特定页面的html代码。网址格式为:
http://www.externalwebsite.com/dir/page.html?p1=parameter1value&p2=parametervalue2
当我得到这个页面的html代码时,有一个隐藏值列表,其中填充了之前在查询字符串中写过的p1和p2参数。然后有一个POST动作重定向到“/dir/page.html”:在这个页面中有我需要的html内容。
有没有办法获取“dir / page.html”的html内容?
非常感谢任何帮助!
谢谢
我已经使用streamreader实现了GetResponseStream,但是我得到了这段HTML:
<form name="myForm" method="post" action="/dir/page.html" accept-charset="ISO-8859-1">
<input type="hidden" name="p1" value="parameter1">
<input type="hidden" name="p2" value="parameter2">
</form>
答案 0 :(得分:1)
你想要GetResponse
。像...这样的东西。
HttpWebRequest request =
WebRequest.Create("http://www.externalwebsite.com/dir/page.html");
HttpWebResponse response = request.GetResponse();
StreamReader reader = New StreamReader(response.GetResponseStream());
string sHTML = reader.ReadToEnd();
答案 1 :(得分:1)
您已发出HTTP GET请求,但在提交表单时,您必须向服务器发出HTTP PUT请求,该请求包含两个参数p1和p2。
您可以使用WebRequestClass
或WebClient
类以及UploadValues
方法通过HTTP POST发送参数:
WebClient wc = new WebClient();
byte[] result = wc.UploadValues("http://www.externalwebsite.com/dir/page.html",
"POST",
new NameValueCollection
{
{ "p1", parameter1 },
{ "p2", parameter2 }
});