提供了无效的请求URI。请求URI必须是绝对URI或必须设置BaseAddress

时间:2016-01-16 11:37:23

标签: c# http httpclient

我正在尝试使用此代码从网页获取内容:

HttpClient http = new HttpClient();
  var response = await http.GetByteArrayAsync("www.nsfund.ir/news?p_p_id=56_INSTANCE_tVzMoLp4zfGh&_56_INSTANCE_tVzMoLp4zfGh_mode=news&_56_INSTANCE_tVzMoLp4zfGh_newsId=3135919&p_p_state=maximized");
   String source = Encoding.GetEncoding("utf-8").GetString(response, 0, response.Length - 1);
   source = WebUtility.HtmlDecode(source);
   HtmlDocument resultat = new HtmlDocument();
   resultat.LoadHtml(source);

但是我收到了这个错误:

  

提供了无效的请求URI。请求URI必须是绝对URI或必须设置BaseAddress。

2 个答案:

答案 0 :(得分:13)

您只需要指定完整的URL(包括协议),如下所示:

var response = await http.GetByteArrayAsync("http://www.nsfund.ir/news?p_....

答案 1 :(得分:5)

绝对URI遵循<button class="button" ng-click="proceedToPayemnt()">Make Payment</button>约定。由于您未指定协议,特别是protocol://server/path?query#hashhttp://,因此该URL不是绝对的,因此无法解析。