在c#中发布url并检索html

在c#中发布url并检索html,c#,url,post,C#,Url,Post,我必须获得特定页面的html代码。url格式为: 当我得到这个页面的html代码时,有一个隐藏值列表,其中填充了之前在querystring中编写的p1和p2参数。然后有一个POST操作重定向到“/dir/page.html”:在这个页面中有我需要的html内容 有没有办法获取“dir/page.html”的html内容 非常感谢您的帮助 多谢各位 我已经使用streamreader实现了GetResponseStream,但我得到了以下HTML片段: <form name="myFor

我必须获得特定页面的html代码。url格式为:

当我得到这个页面的html代码时,有一个隐藏值列表,其中填充了之前在querystring中编写的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>

您需要
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();

您已发出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 }
                                    });

我已经实现了这段代码。请参阅我刚刚在帖子中添加的详细信息。谢谢:)没什么可做的…我曾经得到过与hiddenfield html相同的页面(参考我在第一篇文章中编写的html代码)。我建议启动fiddler,在提交表单时查看页面到底发布了什么。也许表单中还有更多的字段。你到底想要实现什么?隐藏字段是否由客户端代码填充?我不知道如何填充隐藏字段,因为“externalwebsite”不是我管理的网站。在任何情况下,我试图再次解释事情是如何进行的:-用户继续-有一个关于html代码的POST操作,我需要得到。我假设有一个会话/cookie或其他东西“告诉”网站“好的,页面已经被正确调用,显示html内容!”。你最好在你的应用程序中创建一个InternetExplorer实例并导航到该页面-这将模拟用户体验,然后你可以检索你想要的值。