在 C# 中连接 URL 与变量

问题描述 投票:0回答:2

我正在尝试将 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”,我没有收到任何错误,但我也能够添加变量名+后面的内容,使用使变量名称是动态的选项 - 因此我不能将其作为整个硬编码字符串给出。

c# url httprequest uri
2个回答
3
投票

_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


0
投票

我想你只是错过了一个方括号

_configuration["MY_BASE_URL"]

variableName = "1234";

....

var requestMessage = new HttpRequestMessage(HttpMethod.Get, _configuration["MY_BASE_URL"] + variableName + "/theRestOfTheUrl");
© www.soinside.com 2019 - 2024. All rights reserved.