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 サイトの他の関連記事を参照してください。