74 votes

Comment utiliser l'API Android Volley ?

J'envisage de mettre en œuvre la bibliothèque Android Volley dans mes prochains projets ( Présentation de Volley à l'IO de Google ).

Cependant, je n'ai pas trouvé d'API sérieuse pour cette bibliothèque.

Comment télécharger des fichiers, effectuer des requêtes POST/GET et ajouter un analyseur syntaxique Gson en tant qu'élément d'infrastructure ? JSON parser en utilisant Volley ?

Code source

1 votes

Accéder à ce lien java.dzone.com/articles/Android-%E2%80%93-volley-library écrit par un utilisateur de Stack Overflow nommé Paresh Mayani.

1 votes

0 votes

J'ai écrit à ce sujet ici -> goo.gl/nl2DfN

107voto

Abdrahmn_msi Points 544

Editar: Le voici enfin une formation officielle à propos de "Bibliothèque de volley-ball

J'ai trouvé quelques exemples concernant la bibliothèque Volley

J'espère que cela vous aidera

0 votes

Bibliothèque intéressante et grands liens ! !! Merci @Abdrahmn_msi ^^

0 votes

J'ai besoin d'aide pour les demandes de PATCH avec Volley, quelqu'un peut-il m'aider ?

10voto

Malheureusement, jusqu'à présent, il n'existe pas de documentation pour une bibliothèque Volley comme JavaDocs. Il n'y a que le dépôt sur Github et plusieurs tutoriels sur Internet. Donc la seule bonne documentation est code source :) . Quand j'ai joué avec Volley, j'ai lu ceci tutoriel .

A propos de post/get vous pouvez lire ceci : Volley - paramètres POST/GET

J'espère que cela vous aidera

3voto

developer1011 Points 352

Voici une illustration de la réalisation d'une requête POST à l'aide de Volley. StringRequest est utilisé pour obtenir la réponse sous la forme d'une chaîne.
Supposons que votre API de repos renvoie un JSON. La réponse JSON de votre API est reçue ici sous la forme d'une chaîne, que vous pouvez à nouveau convertir en JSON et traiter ultérieurement. Ajout de commentaires dans le code.

StringRequest postRequest = new StringRequest(Request.Method.POST, "PUT_YOUR_REST_API_URL_HERE",
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    try {
                        final JSONObject jsonObject = new JSONObject(response);
                        // Process your json here as required
                    } catch (JSONException e) {
                        // Handle json exception as needed
                    }
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    String json = null;
                    NetworkResponse response = error.networkResponse;
                    if(response != null && response.data != null){
                        switch(response.statusCode) {
                            default:
                                String value = null;
                                try {
                                    // It is important to put UTF-8 to receive proper data else you will get byte[] parsing error.
                                    value = new String(response.data, "UTF-8");
                                } catch (UnsupportedEncodingException e) {
                                    e.printStackTrace();
                                }
                                json = trimMessage(value, "message");
                                // Use it for displaying error message to user 
                                break;
                        }
                    }
                    loginError(json);
                    progressDialog.dismiss();
                    error.printStackTrace();
                }  
                public String trimMessage(String json, String key){
                    String trimmedString = null;
                    try{
                        JSONObject obj = new JSONObject(json);
                        trimmedString = obj.getString(key);
                    } catch(JSONException e){
                        e.printStackTrace();
                        return null;
                    }
                    return trimmedString;
                }
            }
    ) {
        @Override
        protected Map<String, String> getParams() {
            Map<String, String> params = new HashMap<>();
            params.put("abc", "pass abc");
            params.put("xyz", "pass xyz");
            // Pass more params as needed in your rest API
    // Example you may want to pass user input from EditText as a parameter
    // editText.getText().toString().trim()
            return params;
        }  
        @Override
        public String getBodyContentType() {
            // This is where you specify the content type
            return "application/x-www-form-urlencoded; charset=UTF-8";
        }
    };

    // This adds the request to the request queue
    MySingleton.getInstance(YourActivity.this)
.addToRequestQueue(postRequest);

// Voici la classe MySingleton

public class MySingleton {
    private static MySingleton mInstance;
    private RequestQueue mRequestQueue;
    private static Context mCtx;  
    private MySingleton(Context context) {
        mCtx = context;
        mRequestQueue = getRequestQueue();
    }

    public static synchronized MySingleton getInstance(Context context) {
        if (mInstance == null) {
            mInstance = new MySingleton(context);
        }
        return mInstance;
    }

    public RequestQueue getRequestQueue() {
        if (mRequestQueue == null) {
            // getApplicationContext() is key, it keeps you from leaking the
            // Activity or BroadcastReceiver if someone passes one in.
            mRequestQueue = Volley.newRequestQueue(mCtx.getApplicationContext());
        }
        return mRequestQueue;
    }

    public <T> void addToRequestQueue(Request<T> req) {
        getRequestQueue().add(req);
    }
}

1voto

pathe.kiran Points 1930

Il suffit d'ajouter la bibliothèque volley.jar à votre projet. et ensuite

Selon la documentation Android :

// Instantiate the RequestQueue.
RequestQueue queue = Volley.newRequestQueue(this);
String url ="http://www.google.com";

// Request a string response from the provided URL.
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
            new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {
        // process your response here

    }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
        //perform operation here after getting error
    }            
});
// Add the request to the RequestQueue.
queue.add(stringRequest);

Pour plus d'aide, voir Comment utiliser le Volley

0voto

Hadi Note Points 410

Utilisez cette classe. Elle vous fournit un moyen facile de vous connecter à la base de données.

public class WebRequest {

    private Context mContext;
    private String mUrl;
    private int mMethod;
    private VolleyListener mVolleyListener;

    public WebRequest(Context context) {
        mContext = context;
    }

    public WebRequest setURL(String url) {
        mUrl = url;
        return this;
    }

    public WebRequest setMethod(int method) {
        mMethod = method;
        return this;
    }

    public WebRequest readFromURL() {
        RequestQueue requestQueue = Volley.newRequestQueue(mContext);
        StringRequest stringRequest = new StringRequest(mMethod, mUrl, new Response.Listener<String>() {
            @Override
            public void onResponse(String s) {
                mVolleyListener.onRecieve(s);
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError volleyError) {
                mVolleyListener.onFail(volleyError);
            }
        });

        requestQueue.add(stringRequest);
        return this;
    }

    public WebRequest onListener(VolleyListener volleyListener) {
        mVolleyListener = volleyListener;
        return this;
    }

    public interface VolleyListener {
        public void onRecieve(String data);

        public void onFail(VolleyError volleyError);
    }
}

Exemple d'utilisation :

new WebRequest(mContext)
     .setURL("http://google.com")
     .setMethod(Request.Method.POST)
     .readFromURL()
     .onListener(new WebRequest.VolleyListener() {
         @Override
         public void onRecieve(String data) {
         }

         @Override
         public void onFail(VolleyError volleyError) {
         }
     });

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X