我试图通过在GET请求中提供IP地址来获取资源。
/api/computers/ip/192.168.10.90 - throws 404 error
/api/computers/ip/192~168~10~90 - hits the method
看起来提供IP是这里的问题。那么如何将IP作为GET请求的一部分传递?
答案 0 :(得分:0)
执行此操作的一种方法是对ip地址进行编码并将其作为查询字符串值传递。 你的方法将是
[Route("computers/ip")]
public IHttpActionResult GetComputer(string ip)
你发送请求:... / computers / ip?ip = [theEncodedIP]
您可以从方法Route
[Route("computers")]
public IHttpActionResult GetComputer(string ip)
您使用以下命令发送请求:... / computers?ip = [theEncodedIP]
答案 1 :(得分:0)
你必须以编码形式传递ip,但是在Get请求中使用querystring。您也可以通过HTTP handlers执行此操作,因此,如果请求符合条件,则可以在请求转到服务器之前使用您的逻辑。
有些链接建议在Web.Config中设置runAllManagedModulesForAllRequests为真。
<modules runAllManagedModulesForAllRequests="true">
启用RunAllManagedModulesForAllRequests将为所有请求启用所有托管模块。因此,如果不需要,服务器将处理图像,PDF和其他所有资源。