【发布时间】:2016-07-25 06:20:10
【问题描述】:
当我尝试从 Fiddler 调用我的 WEB API 时,它使用 GET 调用,即使我将 Fiddler 设置为使用 POST。
注意:我所有的 GET API 方法都可以正常工作。
POST http://www.myapisite.com/api/UserAccounts/CreateAccount
[Header] User-Agent:
Fiddler Host: www.myapisite.com
Content-Type: application/json; charset=utf-8
Content-Length: 453
[Request Body]
{
"user_id": "1",
"store_id": "1",
"merchant_id": "1"
}
我的 WEB API 方法签名:
[ValidateModelState]
[System.Web.Mvc.HttpPost]
[Route("api/UserAccounts/CreateAccount")]
[EnableCors(origins: "mymvcsite.com", headers: "*", methods: "*")]
public virtual IHttpActionResult CreateAccont(
[FromBody]AccountHolderDto accountHolderDto)
{
...
}
AccountHolderDto 只是一个具有公共属性(user_id、store_id、merchant_id)的类
非常感谢任何帮助! - 这让我困惑了一整天
【问题讨论】:
-
能否也添加实际被调用的方法的代码?
-
@RaviA 我认为被调用的方法签名就足够了,我无法添加代码,它是专有的。为什么该方法的内部代码与我的 Fiddler 执行 GET 而不是 POST 有任何关系?
-
不,我的问题是发布上述调用正在执行的 Get 方法的签名。为什么您觉得 fiddler 正在执行 Get?
-
@RaviA 因为在我执行之后,我点击 Fiddler 中的 Headers 并得到这个: [Request Headers] GET /api/UserAccounts/CreateAccount HTTP/1.1 [Response Headers] HTTP/1.1 405 Method Not允许