c#web api如何将url作为参数传递

c#web api如何将url作为参数传递,c#,asp.net,asp.net-web-api,C#,Asp.net,Asp.net Web Api,我有一个c#Web api,如下所示: [HttpGet] [Route("gatewayinfo/{endpointAddress}")] public GatewayModel GetGatewayInfo(string endpointAddress) 当我调用该api时,我需要传入一个url作为地址() 我如何使用HttpClient实现这一点?如果我将url放在参数中,它将不起作用: var client = new HttpClient(); client.SetBearerTok

我有一个c#Web api,如下所示:

[HttpGet]
[Route("gatewayinfo/{endpointAddress}")]
public GatewayModel GetGatewayInfo(string endpointAddress)
当我调用该api时,我需要传入一个url作为地址()

我如何使用HttpClient实现这一点?如果我将url放在参数中,它将不起作用:

var client = new HttpClient();
client.SetBearerToken(token);
var result = await client.GetStringAsync(_webApiAddress + parameter);

您需要对
param

using (var client = new HttpClient())
{
    client.BaseAddress = new Uri(_webapiAddress);
    client.SetBearerToken(token)

    var result  = await client.GetStringAsync($"gatewayinfo/{HttpUtility.UrlEncode(parameter)}");
}

您需要对
param

using (var client = new HttpClient())
{
    client.BaseAddress = new Uri(_webapiAddress);
    client.SetBearerToken(token)

    var result  = await client.GetStringAsync($"gatewayinfo/{HttpUtility.UrlEncode(parameter)}");
}

那么在执行之前,
\u webApiAddress+参数的值是多少?如果使用
http://localhost:8080/gatewayinfo/http://www.example.com/
?“URL”中的这些斜杠可能会使解析变得困难;在我看来,protocoll的格式很奇怪。可能只需在
端点地址中执行
gatewayinfo/example.com
而不使用斜杠?在将url作为参数传递之前,您是否尝试过对其进行编码?那么在执行之前,
\u webApiAddress+参数的值是多少?如果使用
http://localhost:8080/gatewayinfo/http://www.example.com/
?“URL”中的这些斜杠可能会使解析变得困难;在我看来,protocoll的格式很奇怪。也许只需在
endpointAddress
中执行一个
gatewayinfo/example.com
而不使用斜杠?在将url作为参数传递之前,您是否尝试过对其进行编码?谢谢,我实际上做了一个更改,将url转换为base64并将base64字符串作为参数传递。在WebAPI中,我将base64转换回url。谢谢,我实际上做了一个更改,将url转换为base64,并将base64字符串作为参数传递。在WebAPI中,我将base64转换回url。