【问题标题】:Why is Fiddler doing a GET when I set it to POST为什么当我将 Fiddler 设置为 POST 时它会执行 GET
【发布时间】: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允许

标签: asp.net-web-api fiddler


【解决方案1】:

该死!,我删除了 uri 的“www”前缀,它现在可以工作了 由此: http://www.myapisite.com/api/UserAccounts/CreateAccount 对此: http://myapisite.com/api/UserAccounts/CreateAccount

令人难以置信的最小的事情会引起如此多的痛苦

【讨论】:

    猜你喜欢
    • 2014-04-08
    • 1970-01-01
    • 2022-11-21
    • 2019-04-12
    • 1970-01-01
    • 2012-05-27
    • 2011-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多