有効な応答
パラメータや本文を追加しない
VSデバッグモードでは、
reqのパラメータを見ることができます。
しかし、サーバーはボディを受信しませんでした。
「リクエスト本文が無効または設定されていません」というエラーメッセージが常に表示されます
これは、RFCによると、本文はGETがサポートを要求するものではないためです。
これがその背景です。 RFCの範囲外のことをする予定はありません
https://stackoverflow.com/questions/978061/http-get-with-request-body
@alexeyzimarev
リプレイありがとうございます!
こんにちは@alexeyzimarev 、
私は最近これにぶつかっています。 .Net Coreは、ボディを使用したGETの送信をサポートするようになりましたが、これを一般的に使用する必要があるかどうかはまだ明確ではありませんが、いくつかの大きなAPIがそれを使用しているようです。 代わりに利用可能なPOSTでそれを使用するものもありますが、そうでないものもあります。
SOからの参照: https :
もちろん、誰もが同じように、ただし「クライアント開発者」の観点から標準に準拠し、それに従うことができれば、それは素晴らしいことです。 GETをボディで使用するためのAPIを統合する必要があります。
これは、RestSharpをバイパスして、これを自分で実装する必要があることを意味します(これはあまり面白くありません)。
.net Coreがこれをサポートし、APIがこれを採用しているので、これを組み込むことを再検討できますか?
これについて読むと、RFCが変更されました(私は思います)。つまり、GET Bodyがサポートされ、許可されています。サーバーはそれを無視する必要があります。
ありがとう!
RFCの現在のバージョンでは、Bodyを含むGET要求が明示的に拒否されていないため、実際にはこれは間違っていると見なされるべきだと思います。
GET要求メッセージ内のペイロードには定義されたセマンティクスがありません。
GETリクエストでペイロード本体を送信すると、既存のペイロードが発生する可能性があります
リクエストを拒否する実装。
それを拒否するかどうかは、サーバーの実装次第である必要があるようです。
クライアントライブラリレベルでブロックすると、他の誰かのサーバーと通信する必要があり、このシナリオに直面する可能性のある多くのアプリケーションでのRestSharpの使用が無効になります。
これを回避するには、別のライブラリの使用を実装する必要があります。
最も参考になるコメント
RFCの現在のバージョンでは、Bodyを含むGET要求が明示的に拒否されていないため、実際にはこれは間違っていると見なされるべきだと思います。
それを拒否するかどうかは、サーバーの実装次第である必要があるようです。
クライアントライブラリレベルでブロックすると、他の誰かのサーバーと通信する必要があり、このシナリオに直面する可能性のある多くのアプリケーションでのRestSharpの使用が無効になります。
これを回避するには、別のライブラリの使用を実装する必要があります。