3

我第一次使用 RestSharp 并执行 POST 我有许多 GET 请求都可以正常工作)。休息服务在 python 中,但我认为这对这个问题并不重要。这是我的代码:

   var client = new RestClient { BaseUrl = _baseUrl };

  var request = new RestRequest("nameOfPostMethod", Method.POST);
  request.RequestFormat = DataFormat.Json;
  request.AddBody(new { name, description });
  request.AddHeader("accept", "application/json");

  var response = client.Execute(request);

这是我得到的原始回复:

    [{"name": "405 - Method Not Allowed", "data": 
    [["Class", "werkzeug.exceptions.MethodNotAllowed"], ["Category", "Client Error"], 
     ["Code", "405"], ["Name", "Method Not Allowed"], ["request.method", "GET"], 
     ["request.url", "http://myUrl/nameOfPostMethod"], ["error.message", "405 Method
    Not Allowed"], ["error.description", null]]}]

让我印象深刻的是这些似乎认为我在做 GET 而不是 POST 的行:

 ["request.method", "GET"]

 ["error.message", "405 Method Not Allowed"]

关于我在这里可能做错的任何建议?

更新:

我下载了 fiddler 并试图看看发生了什么,有趣的是,当我查看标题时,它确实显示了一个 GET。这是我在提琴手中看到的屏幕截图:

在此处输入图像描述

我什至试图改变:

  client.Execute(request);

  client.Post(request);

但它仍然显示相同的东西。有任何想法吗?

4

2 回答 2

4

事实证明这是网络服务器端的重定向问题,因此与 Rest Sharp 无关

我已要求删除该问题以避免任何混淆。

于 2014-09-30T13:52:04.283 回答
2

这是跨域请求吗?如果是这样,那么我怀疑 RestSharp在执行实际 HTTP POST 之前会发出CORS预检请求。如果不允许跨域 POST,“405 Method Not Allowed”是对 CORS 请求的正确响应。我不确定该屏幕截图是否显示了所有HTTP 标头。它是否在 GET 中发送 Access-Control-* 标头?那将证实这一点。

于 2014-09-29T21:17:04.797 回答