0

如何使用 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

然后我想检索第二个网址

提前致谢

4

1 回答 1

0

您可以从链接和刚刚下载的链接构造 url,如下所示:

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 具有 url 参数,这也适用。

至于第二个问题,我猜你的意思是请求被重定向,而你想要那个 url?那么最简单的方法就是在这里WebClient描述子类。

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);
}
于 2013-05-30T12:59:09.760 回答