【发布时间】:2014-11-06 16:37:28
【问题描述】:
我的控制器上有一个名为 GetPhotos 的操作。当我使用适当的参数将操作调用为 GET 时,会调用该操作并且一切正常。 (我用的是属性路由)
获取代码
[Route("getphotos")]
public IHttpActionResult GetPhotos(string userid, string password, string system, string outstation, string systemno, string version, string compid, string photono)
{
//Do some logic here
return OK();
}
GET 调用
GET http://localhost:60672/getphotos?userid=User1++&password=12345&system=UserSystem&outstation=9&systemno=3&version=6.78&compid=mycomputername&photono=003573
HTTP/1.1
User-Agent: Fiddler
Host: localhost:60672
Content-Type: application/x-www-form-urlencoded
Content-Length: 0
但是,当我将操作更改为 HttpPost 并将我的调用更改为 POST 调用(通过 Fiddler)时,我得到了 404。
POST 代码
[HttpPost]
[Route("getphotos")]
public IHttpActionResult GetPhotos(string userid, string password, string system, string outstation, string systemno, string version, string compid, string photono)
{
//Do some logic here
return OK();
}
POST 调用
POST http://localhost:60672/getphotos HTTP/1.1
Content-Type: application/x-www-form-urlencoded
User-Agent: Fiddler
Host: localhost:60672
Content-Length: 170
Pragma: no-cache
USERID=User1&PASSWORD=12345&SYSTEM=UserSystem&OUTSTATION=9&SYSTEMNO=3&VERSION=6%2E79&COMPID=mycomputername&PHOTONO=003573
为什么我无法通过 POST 找到操作?
【问题讨论】:
-
尝试更改 POST 方法的名称:
GetPhotos=>PostPhotos。 -
您启用了 CORS 吗?我猜你需要启用它...
标签: c# routing asp.net-web-api2