c#web api如何将url作为参数传递
我有一个c#Web api,如下所示: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
[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。