>Java >java지도 시간 >HttpEntity 지원 중단 후 Volley를 사용하여 멀티파트 요청을 보내는 방법은 무엇입니까?

HttpEntity 지원 중단 후 Volley를 사용하여 멀티파트 요청을 보내는 방법은 무엇입니까?

DDD
DDD원래의
2024-12-01 13:50:12916검색

How to Send Multipart Requests with Volley After HttpEntity Deprecation?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.