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

Posted

技术标签:

【中文标题】提供了无效的请求 URI。请求 URI 必须是绝对 URI 或必须设置 BaseAddress【英文标题】:HTTPClent error An invalid request URI was provided 【发布时间】: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....... 【参考方案1】:

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

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

【讨论】:

【参考方案2】:

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

【讨论】:

你拯救了我的一天,我在过去的一个小时里一直在努力让它工作,结果我只有一个斜线 (http:/)...

以上是关于提供了无效的请求 URI。请求 URI 必须是绝对 URI 或必须设置 BaseAddress的主要内容,如果未能解决你的问题,请参考以下文章

“请求中的 URI 无效”尝试代理 iframe 内容以进行本地调试

Azure 前门:请求 URI 无效

Dart Uri Api - 请求通过将 HTML 代码提供给问号来更改链接

Uri.EscapeDataString() - 无效的 URI:Uri 字符串太长

无效的 URI:无法从很长的 url 解析授权/主机

如何修复“AADSTS90102:‘redirect_uri’值必须是有效的绝对 Uri。” Microsoft Graph 中的错误