Объединенный URL с переменной в C# - PullRequest
0 голосов
/ 28 января 2020

Я пытаюсь объединить URL-адрес с переменной, а затем "остальную часть" URL-адреса.

Это выглядит так:

variableName = "1234";

....

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

Где сохраняется "MY_BASE_URL" в качестве переменной как: "http://mytestsite.com/users/"

, но при этом я получаю ошибку:

"error": "Предоставлен неверный URI запроса. URI запроса должен быть либо должен быть установлен абсолютный URI или BaseAddress.

Что я делаю не так? Когда просто передаю:

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

, где я вместо этого назвал "MY_BASE_URL "as" http://mytestsite.com/users/1234/theRestOfTheUrl "Я не получаю ошибок, но я бы тоже смог добавить variableName +, что будет после, с возможностью иметь variableName, являющееся Dynami c - и поэтому я не может дать это как целую жестко закодированную строку.

1 Ответ

3 голосов
/ 28 января 2020

_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);

PO C: . net Fiddle

...