提供了无效的请求 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 内容以进行本地调试
Dart Uri Api - 请求通过将 HTML 代码提供给问号来更改链接
Uri.EscapeDataString() - 无效的 URI:Uri 字符串太长
如何修复“AADSTS90102:‘redirect_uri’值必须是有效的绝对 Uri。” Microsoft Graph 中的错误