2016-01-16 154 views
3

我试图用这个代码从一个网页的内容:提供了无效的请求URI。 URI必须是绝对URI或BaseAddress请求必须设置

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

尝试'HTTP:// WWW .......' –

回答

5

您只需要指定完整的URL(包括协议)是这样的:

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

绝对URI遵循protocol://server/path?query#hash约定。由于您没有指定协议,特别是您的情况下为http://https://,因此URL不是绝对的,因此无法解析。

相关问题