Heim >Java >javaLernprogramm >Wie sende ich mehrteilige Anfragen mit Volley nach der Einstellung von HttpEntity?

Wie sende ich mehrteilige Anfragen mit Volley nach der Einstellung von HttpEntity?

DDD
DDDOriginal
2024-12-01 13:50:12912Durchsuche

How to Send Multipart Requests with Volley After HttpEntity Deprecation?

Mehrteilige Anfrage mit Volley ohne HttpEntity

Einführung

Mit HttpEntity in API22 veraltet und entfernt In API23 können Android-Entwickler beim Senden mehrteiliger Anfragen mit Volley vor Herausforderungen stehen. Dieser Artikel enthält ein funktionierendes Codebeispiel für mehrteilige POST-Anfragen mit Volley ohne die Verwendung von HttpEntity.

Code Implementierung

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

Aktualisiert mit Textdaten

Um Textdaten in die einzubeziehen Anfrage können Sie die getParams()-Methode in VolleyMultipartRequest überschreiben:

@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;
}

Fazit

Der bereitgestellte Code bietet eine praktische Lösung für das Senden mehrteiliger Anfragen sogar mit Volley nach der Abschaffung von HttpEntity. Mithilfe der in diesem Artikel beschriebenen Methoden können Entwickler problemlos mehrere Dateien und Textdaten an einen Server senden, ohne dass komplexe HttpEntity-Implementierungen erforderlich sind.

Das obige ist der detaillierte Inhalt vonWie sende ich mehrteilige Anfragen mit Volley nach der Einstellung von HttpEntity?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn