3

私はRestSharpを使用していて、初めてPOSTを実行していますが、すべて正常に機能する多数のGETリクエストがあります)。Rest Service は 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]]}]

私に突き出ているのは、POST ではなく GET を行っていると思われる次の行です。

 ["request.method", "GET"]

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

ここで私が間違っているかもしれないことについて何か提案はありますか?

アップデート:

フィドラーをダウンロードして、何が起こっているのかを確認しようとしましたが、興味深いことに、ヘッダーを見ると、GET が表示されます。フィドラーで見たもののスクリーンショットを次に示します。

ここに画像の説明を入力

私も変更しようとしました:

  client.Execute(request);

  client.Post(request);

しかし、それでも同じことを示しています。何か案は?

4

2 に答える 2

4

Webサーバー側のリダイレクトの問題であることが判明したため、Rest Sharpとは関係ありません

混乱を避けるため、質問を削除するように依頼しました。

于 2014-09-30T13:52:04.283 に答える
2

これはクロスドメイン リクエストですか? もしそうなら、RestSharp が実際の HTTP POST を実行する前にCORSプリフライト リクエストを作成していると思われます。「405 Method Not Allowed」は、クロスドメイン POST が許可されていない場合の CORS 要求に対する適切な応答です。そのスクリーン ショットにすべての HTTP ヘッダーが表示されているかどうかはわかりません。GET で Access-Control-* ヘッダーを送信しますか? それはそれを確認します。

于 2014-09-29T21:17:04.797 に答える