9

私は現在、取り組んでいるプロジェクトで Android の Volley ネットワーク ライブラリを使用しています。ボレーのマスター ブランチをhttps://android.googlesource.com/platform/frameworks/volley/から取得したので、ライブラリ プロジェクトは最新の状態である必要がありますが、次のリクエスト メソッドしかサポートしていません。

/**
 * Supported request methods.
 */
public interface Method {
    int DEPRECATED_GET_OR_POST = -1;
    int GET = 0;
    int POST = 1;
    int PUT = 2;
    int DELETE = 3;
}

パッチ リクエストをサポートするようにライブラリを拡張することは、おそらくそれほど問題ではないでしょう。私の質問は、ベース ライブラリでパッチ リクエストがサポートされないのはなぜですか? また、このサポートを既に追加している適切な git ブランチを誰か提案できますか?

4

1 に答える 1

11

私はついにこの質問に対する答えを見つけました。とても愚かです。問題は Volley フレームワークにはありません。Java の HTTPUrlConnection は PATCH をサポートしていません。Java Reflection を使用してメソッド オブジェクトを PATCH に設定する方法がインターネット上にありますが、追加の問題が発生します。

X-HTTP-Method-Override最後に、ヘッダーを使用してこの問題を解決しました。私は通常の POST リクエストを本文で作成し、以下のようにこのヘッダーを追加しました。

X-HTTP-Method-Override: PATCH

そしてそれはうまくいきました。ただし、Web サーバー側はメソッドのオーバーライドをサポートする必要があります。

于 2013-11-26T15:51:47.337 に答える