我正在尝试将 URL 与变量连接起来,然后连接 URL 的“其余部分”。
事情是这样的:
variableName = "1234";
....
var requestMessage = new HttpRequestMessage(HttpMethod.Get, _configuration["MY_BASE_URL" + variableName + "/theRestOfTheUrl"]);
其中“MY_BASE_URL”保存为变量:
"http://mytestsite.com/users/"
但是这样做时我收到错误:
“错误”:“提供了无效的请求 URI。请求 URI 必须是绝对 URI 或必须设置 BaseAddress。
我做错了什么?刚刚经过时:
var requestMessage = new HttpRequestMessage(HttpMethod.Get, _configuration["MY_BASE_URL"]);
我将“MY_BASE_URL”命名为“http://mytestsite.com/users/1234/theRestOfTheUrl”,我没有收到任何错误,但我也能够添加变量名+后面的内容,使用使变量名称是动态的选项 - 因此我不能将其作为整个硬编码字符串给出。
_configuration["MY_BASE_URL"]
是一个配置变量,它返回您的基本 URL,即 http://mytestsite.com/users/
,现在您需要向其附加变量值,然后是硬编码字符串 /theRestOfTheUrl
。
不要将所有内容都写在
_configuration
键内,而是使用 字符串插值 来编写
尝试
string url = $"{_configuration["MY_BASE_URL"]}{variableName}/theRestOfTheUrl";
Console.WriteLine(url); // http://mytestsite.com/users/1234/theRestOfTheUrl
你的代码看起来像这样
variableName = "1234";
....
string url = $"{_configuration["MY_BASE_URL"]}{variableName}/theRestOfTheUrl";
var requestMessage = new HttpRequestMessage(HttpMethod.Get, url);
POC:.net Fiddle
我想你只是错过了一个方括号
_configuration["MY_BASE_URL"]
variableName = "1234";
....
var requestMessage = new HttpRequestMessage(HttpMethod.Get, _configuration["MY_BASE_URL"] + variableName + "/theRestOfTheUrl");