C#-如何发送URL作为Web.Api的GET方法的ID

C#-如何发送URL作为Web.Api的GET方法的ID,c#,asp.net-web-api,C#,Asp.net Web Api,如果发送的ID是URL,如何发送GET请求 也就是说,我正在调用下面的程序(这显然不起作用),以查看我发送的URL是否已经在我的数据库中 我的客户端代码是: var response = httpClient.GetAsync("http://myserver.com/api/checkurl", urlToCheck).Result; 在API方面: [HttpGet] [Route("api/checkurl/{url}")] public HttpResponseMessage Ch

如果发送的ID是URL,如何发送GET请求

也就是说,我正在调用下面的程序(这显然不起作用),以查看我发送的URL是否已经在我的数据库中

我的客户端代码是:

var response = httpClient.GetAsync("http://myserver.com/api/checkurl",  urlToCheck).Result;
在API方面:

[HttpGet]
[Route("api/checkurl/{url}")]
public HttpResponseMessage CheckURLExistsApi(string url)
{
    var url = db.URLS.FirstOrDefault(x => x.Url == url);
    if (url != null)
    {
        return Request.CreateResponse(HttpStatusCode.Found);         }

    }
    return Request.CreateResponse(HttpStatusCode.NotFound);
}
有没有一种方法可以封装我的url字符串?或者我应该使用POST而不是GET并发送字典


感谢建议URL编码的评论,但我遇到了查询字符串可能存在危险的问题,并且不愿意通过web.config在整个网站上删除该保护站点


因此,我最终要做的是创建一个模型来保存我的URL,并使用PostAsJson方法发布它,然后获取HTTP状态代码以进行评估。

它需要。应该是
http://myserver.com/api/checkurl/http%3A%2F%2Fwww.urltocheck.com.au/people/112
嗯,这是一个很容易解决的问题。。。!作为一个选项,您可以加密
URL
(例如,作为Base64或类似文件),并将其作为加密字符串值传递