Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当使用RestSharp时,我在帖子上找不到MethodNotFound,但回复认为这是一个GET?_C#_Restsharp_Methodnotfound - Fatal编程技术网

C# 当使用RestSharp时,我在帖子上找不到MethodNotFound,但回复认为这是一个GET?

C# 当使用RestSharp时,我在帖子上找不到MethodNotFound,但回复认为这是一个GET?,c#,restsharp,methodnotfound,C#,Restsharp,Methodnotfound,我正在使用RestSharp,并且第一次发布了一篇帖子,我收到了很多GET请求,这些请求都可以正常工作)。Rest服务是用python编写的,但我认为这对这个问题并不重要。这是我的密码: var client = new RestClient { BaseUrl = _baseUrl }; var request = new RestRequest("nameOfPostMethod", Method.POST); request.RequestFormat = DataForm

我正在使用RestSharp,并且第一次发布了一篇帖子,我收到了很多GET请求,这些请求都可以正常工作)。Rest服务是用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。以下是我在fiddler中看到的屏幕截图:

我甚至试图改变:

  client.Execute(request);


但它仍然显示出同样的东西。有什么想法吗?

这是跨域请求吗?如果是这样,那么我怀疑RestSharp在执行实际的httppost之前发出了飞行前请求。如果不允许跨域POST,则“405方法不允许”是对CORS请求的正确响应。我不确定该屏幕截图是否显示了所有HTTP头。它是否在GET中发送访问控制-*头?这将证实这一点。

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


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

您是否使用类似fiddler的工具来捕获请求,以查看它是否正在执行get而不是post?REST服务是否有一个同名的get方法?@Ben Robinson-我尝试使用fiddler,但它确实显示为get。根据上面的代码,你知道为什么会发生这种情况吗?@BenRobinson-我附上了一个fiddler屏幕截图,让你看看我看到了什么
  client.Post(request);