在 C# 中将 URL 与变量连接起来

Concatenate URL with variable in C#

我正在尝试将 URL 与变量连接,然后是 URL 的 "rest"。

它是这样的:

variableName = "1234";

....

var requestMessage = new HttpRequestMessage(HttpMethod.Get, _configuration["MY_BASE_URL" + variableName + "/theRestOfTheUrl"]);

其中"MY_BASE_URL"保存为变量为:"http://mytestsite.com/users/"

但是在执行此操作时出现错误:

"error":"An invalid request URI was provided. The request URI must either be an absolute URI or BaseAddress must be set.

我哪里做错了?刚过时:

var requestMessage = new HttpRequestMessage(HttpMethod.Get, _configuration["MY_BASE_URL"]);

而我将 "MY_BASE_URL" 命名为“http://mytestsite.com/users/1234/theRestOfTheUrl” 我没有收到任何错误,但我也能够添加 variableName + 后面的内容,可以选择variableName 是动态的 - 因此我不能将其作为完整的硬编码字符串提供。

_configuration["MY_BASE_URL"] 是一个配置变量,它 returns 你的基础 URL 即 http://mytestsite.com/users/,现在你需要将变量值附加到它然后硬编码字符串 /theRestOfTheUrl.

与其将所有内容都写入 _configuration 键,不如将其写入 string interpolation

尝试

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