4

Android用のAndroidQuery(AQuery)ライブラリを使用しており、StringEntity(some string)エンティティを使用してPUTリクエストを作成する必要があります。

私のコード、何が問題なのですか?あなたの提案は?".header(" _ method "、" PUT ")"なしで使用してみました

HttpEntity entity = null;
    try {
        entity = new StringEntity(stringData, HTTP.UTF_8);
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }

    Map<String, Object> params = new HashMap<String, Object>();
    params.put(AQuery.POST_ENTITY, entity);

    AQuery aq = new AQuery(this);
    aq.progress(pDialog).ajax(url, params, String.class, new AjaxCallback<String>() {

        @Override
        public void callback(String url, String json, AjaxStatus status) {
            if(status.getCode() == 200) {

            } else {

            }

        }
    }.header("Content-Type", "application/x-www-form-urlencoded") 
    .header("_method", "PUT"));
4

2 に答える 2

9

少し隠されていますが、AjaxCallbackには、method使用するHTTPメソッドを決定するために使用されるプライベートフィールド(および対応するセッター)があります。デフォルトではMETHOD_DETECT、を使用します。これは、何を使用するかを判断しようとします。パラメーターを追加すると、POSTであると見なされます。

したがって、代わりに:

.header("_method", "PUT"));

使用する

.method(AQuery.METHOD_PUT)

(参照:https ://github.com/androidquery/androidquery/blob/master/src/com/androidquery/callback/AbstractAjaxCallback.java#L280 )

于 2013-01-04T20:11:28.753 に答える
-4

AndroidQueryは、一般的にPUTおよびDELETEリクエストをサポートしていません。:(悲しい。

于 2012-06-17T22:52:38.880 に答える