HttpEntity 없이 Volley를 사용한 멀티파트 요청
소개
API22에서 HttpEntity가 더 이상 사용되지 않고 제거됨 API23에서 Android 개발자는 다음을 사용하여 다중 부분 요청을 보낼 때 문제에 직면할 수 있습니다. 발리. 이 문서에서는 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
텍스트로 업데이트됨 데이터
요청에 텍스트 데이터를 포함하려면 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; }
결론
제공된 코드는 HttpEntity가 지원 중단된 후에도 Volley를 사용하여 다중 부분 요청을 보내기 위한 실용적인 솔루션을 제공합니다. 이 문서에 설명된 방법을 사용하면 개발자는 복잡한 HttpEntity 구현 없이 여러 파일과 텍스트 데이터를 서버에 쉽게 게시할 수 있습니다.
위 내용은 HttpEntity 지원 중단 후 Volley를 사용하여 멀티파트 요청을 보내는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!