Restsharp: Get Request(AddJsonBody)への本文の追加が機能していません

作成日 2019年07月05日  ·  5コメント  ·  ソース: restsharp/RestSharp

予想される行動

有効な応答

実際の動作

パラメータや本文を追加しない
VSデバッグモードでは、
reqのパラメータを見ることができます。
しかし、サーバーはボディを受信しませんでした。
「リクエスト本文が無効または設定されていません」というエラーメッセージが常に表示されます

最も参考になるコメント

RFCの現在のバージョンでは、Bodyを含むGET要求が明示的に拒否されていないため、実際にはこれは間違っていると見なされるべきだと思います。

GET要求メッセージ内のペイロードには定義されたセマンティクスがありません。
GETリクエストでペイロード本体を送信すると、既存のペイロードが発生する可能性があります
リクエストを拒否する実装。

それを拒否するかどうかは、サーバーの実装次第である必要があるようです。

クライアントライブラリレベルでブロックすると、他の誰かのサーバーと通信する必要があり、このシナリオに直面する可能性のある多くのアプリケーションでのRestSharpの使用が無効になります。
これを回避するには、別のライブラリの使用を実装する必要があります。

全てのコメント5件

これは、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の使用が無効になります。
これを回避するには、別のライブラリの使用を実装する必要があります。

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

guevelamax15000 picture guevelamax15000  ·  3コメント

wojciechrak picture wojciechrak  ·  3コメント

thomasd3 picture thomasd3  ·  5コメント

weswitt picture weswitt  ·  3コメント

maximuss picture maximuss  ·  3コメント