Maison > Java > javaDidacticiel > Comment envoyer des requêtes multiparts avec Volley après la dépréciation de HttpEntity ?

Comment envoyer des requêtes multiparts avec Volley après la dépréciation de HttpEntity ?

DDD
Libérer: 2024-12-01 13:50:12
original
959 Les gens l'ont consulté

How to Send Multipart Requests with Volley After HttpEntity Deprecation?

Demande multipart avec Volley sans HttpEntity

Introduction

Avec HttpEntity obsolète dans l'API22 et supprimé dans l'API23, les développeurs Android peuvent être confrontés à des difficultés lors de l'envoi de requêtes en plusieurs parties à l'aide de Volley. Cet article fournit un exemple de code fonctionnel pour les requêtes POST multipart avec Volley sans utiliser HttpEntity.

Code Implémentation

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
Copier après la connexion

MultipartRequest.java :

package com.example.multipartvolley;

// ... As before

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

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

// ... Remaining methods
Copier après la connexion

Mise à jour avec les données texte

Pour inclure des données texte dans le requête, vous pouvez remplacer la méthode getParams() dans VolleyMultipartRequest :

@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;
}
Copier après la connexion

Conclusion

Le code fourni fournit une solution pratique pour envoyer des requêtes en plusieurs parties avec Volley, même après la dépréciation de HttpEntity. En utilisant les méthodes décrites dans cet article, les développeurs peuvent facilement POSTER plusieurs fichiers et données texte sur un serveur sans avoir besoin d'implémentations complexes de HttpEntity.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal