【问题标题】:HTTPClent error An invalid request URI was provided提供了无效的请求 URI。请求 URI 必须是绝对 URI 或必须设置 BaseAddress
【发布时间】:2016-01-16 11:37:23
【问题描述】:

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

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。

【问题讨论】:

  • 试试http://www.......

标签: c# http httpclient


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 你拯救了我的一天,我在过去的一个小时里一直在努力让它工作,结果我只有一个斜线 (http:/)...
    猜你喜欢
    • 2021-09-30
    • 2020-11-22
    • 1970-01-01
    • 2020-01-07
    • 2019-01-15
    • 2021-07-30
    • 2018-10-01
    • 2017-08-21
    • 1970-01-01
    相关资源
    最近更新 更多