Maison > Java > javaDidacticiel > Comment effectuer des requêtes POST en plusieurs parties avec Volley dans Android après la suppression de HttpEntity ?

Comment effectuer des requêtes POST en plusieurs parties avec Volley dans Android après la suppression de HttpEntity ?

Linda Hamilton
Libérer: 2024-11-30 18:17:12
original
905 Les gens l'ont consulté

How to Make Multipart POST Requests with Volley in Android After HttpEntity's Removal?

Requêtes POST en plusieurs parties avec Volley et absence de HttpEntity

Dans l'API Android22, HttpEntity était obsolète et entièrement supprimé dans l'API23. Cet article fournit un exemple fonctionnel pour implémenter une requête multipart POST avec Volley sans HttpEntity. La solution proposée est testée avec l'API Web Asp.Net.

Détails d'implémentation

Le code se compose de deux classes :

MultipartActivity. java :

  1. Analyse les fichiers pouvant être dessinés en octets arrays.
  2. Construit un corps de requête en plusieurs parties avec les tableaux d'octets.
  3. Crée un objet MultipartRequest et l'ajoute à une file d'attente de requêtes.

MultipartRequest. java :

  1. Étend la classe Request et implémente les éléments nécessaires méthodes.
  2. Gère les en-têtes de requête, le type de contenu et le corps.
  3. Analyse la réponse du réseau et la transmet à l'auditeur.

Fonctionnalités supplémentaires

Ajout de texte Pièces :

Comme suggéré dans le code fourni, on peut ajouter des parties de texte à la requête en plusieurs parties à l'aide de la méthode getParams() :

@Override
protected Map<String, String> getParams() {
    Map<String, String> params = new HashMap<>();
    params.put("param1", "value1");
    params.put("param2", "value2");
    return params;
}
Copier après la connexion

Code modulaire pour la réutilisabilité :

Pour améliorer la réutilisabilité, le code a été refactorisé :

class VolleyMultipartRequest extends Request<NetworkResponse>  {

    // ... other methods

    @Override
    protected Map<String, DataPart> getByteData() {
        // ... code for adding byte parts
    }
}
Copier après la connexion

Exemple d'utilisation :

VolleyMultipartRequest request = new VolleyMultipartRequest(Method.POST, url, new Response.Listener<NetworkResponse>() {
    // ... listener code
}, new Response.ErrorListener() {
    // ... error listener code
}) {
    @Override
    protected Map<String, String> getParams() {
        // ...
    }
    @Override
    protected Map<String, DataPart> getByteData() {
        // ...
    }
};
Copier après la connexion

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal