在c#中发布url并检索html

时间:2011-10-25 10:06:31

标签: c# url post

我要获取特定页面的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>

2 个答案:

答案 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。

您可以使用WebRequestClassWebClient类以及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 }
                                    });