ホームページ > Java > &#&チュートリアル > HttpEntity の廃止後に Volley を使用してマルチパート リクエストを送信するにはどうすればよいですか?

HttpEntity の廃止後に Volley を使用してマルチパート リクエストを送信するにはどうすればよいですか?

DDD
リリース: 2024-12-01 13:50:12
オリジナル
959 人が閲覧しました

How to Send Multipart Requests with Volley After HttpEntity Deprecation?

HttpEntity を使用しない Volley によるマルチパート リクエスト

概要

HttpEntity は API22 で非推奨となり削除されましたAPI23 では、Android 開発者は次のような課題に直面する可能性があります。 Volley を使用してマルチパート リクエストを送信します。この記事では、HttpEntity を使用せずに Volley を使用した POST マルチパート リクエストの動作するコード サンプルを提供します。

コード実装

MultipartActivity.java:

package com.example.multipartvolley;

// ... As before

@Override
protected void onCreate(Bundle savedInstanceState) {
    // ... As before

    byte[] fileData1 = getFileDataFromDrawable(context, R.drawable.ic_action_android);
    byte[] fileData2 = getFileDataFromDrawable(context, R.drawable.ic_action_book);

    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    DataOutputStream dos = new DataOutputStream(bos);

    try {
        // ... As before
    } catch (IOException e) {
        // ... As before
    }

    String url = "http://192.168.1.100/api/postfile";
    MultipartRequest multipartRequest = new MultipartRequest(url, null, mimeType, multipartBody, new Response.Listener<NetworkResponse>() {
        @Override
        public void onResponse(NetworkResponse response) {
            // ... As before
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            // ... As before
        }
    });

    // ... As before
}

// ... Remaining methods
ログイン後にコピー

MultipartRequest.java:

package com.example.multipartvolley;

// ... As before

@Override
public String getBodyContentType() {
    return mMimeType;
}

@Override
public byte[] getBody() throws AuthFailureError {
    return mMultipartBody;
}

// ... Remaining methods
ログイン後にコピー

テキストで更新Data

リクエストにテキスト データを含めるには、VolleyMultipartRequest の getParams() メソッドをオーバーライドできます。

@Override
protected Map<String, String> getParams() {
    Map<String, String> params = new HashMap<>();

    // Add your text parameters
    params.put("api_token", "gh659gjhvdyudo973823tt9gvjf7i6ric75r76");
    params.put("name", "Angga");
    params.put("location", "Indonesia");

    return params;
}
ログイン後にコピー

結論

提供されたコードは、Volley が非推奨になった後でも、Volley でマルチパート リクエストを送信するための実用的なソリューションを提供します。 HttpEntity.この記事で説明されている方法を使用すると、開発者は複雑な HttpEntity 実装を必要とせずに、複数のファイルやテキスト データをサーバーに簡単に POST できます。

以上がHttpEntity の廃止後に Volley を使用してマルチパート リクエストを送信するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート