如何使用webclient或httpwebrequest做两件事:
1)使用以下命令将资源下载为字符串后说:
var result = x.DownloadString("http://randomsite.com);
有一个相对网址(也是查询字符串):
<a href="/q?name=john&age=50">Click here to get your name and age</a>
如何使用webclient点击(关注)该链接?最初在结果中加载资源后。我能够使用htmlagilitypack来隔离href,但我现在想在代码中遵循它。
2)如果httpwebrequest没有重定向,而是使用不同的参数加载相同的页面,我将如何使用webclient检索生成的新URL? 即如果我打电话
var result = x.DownloadString("http://randomsite.com);
但实际上这叫
http://randomsite.com/q?site=default
然后我要检索第二个网址
提前致谢
答案 0 :(得分:0)
您可以通过链接和刚下载的链接构建网址,如下所示:
Uri baseUri = new Uri("http://randomsite.com");
Uri myUri = new Uri(baseUri, "/q?name=john&age=50");
Console.WriteLine(myUri.ToString()); // gives you http://randomsite.com/q?name=john&age=50
如果你的网址是url,那么这也有效。
至于第二个问题,我猜你的意思是请求被重定向,而你想要那个网址呢?然后,最简单的方法是将WebClient
描述为here。
Uri baseUri = new Uri("http://randomsite.com");
using(var client=new WebClient())
{
var result = client.DownloadString(myUri);
//get href via HtmlAgilityPack...
Uri myUri = new Uri(baseUri, "/q?name=john&age=50");
result = client.DownloadString(myUri);
}