Как вы используете Android Volley API?



Я думаю о реализации библиотеки Android Volley в моих следующих проектах ( презентация Google IO о Volley).



однако я не нашел серьезного API для этой библиотеки.



Как я могу загружать файлы, отправлять / получать запросы и добавлять парсер Gson как JSON парсер с помощью залпа?



исходный код

498   7  

7 ответов:

Edit: наконец-то вот это официальная тренировка о "библиотеке волейбола"

Я нашел несколько примеров о библиотеке волейбола

  • 6 примеры by Ognyan Bankov:

    • простой запрос
    • запрос JSON
    • запрос Gson
    • изображения
  • С новым внешним HttpClient (4.2.3)
  • С Самозаверяющим SSL Сертификат.
  • один хороший простой пример Пареш Маяни

  • другой пример от ХАРДИКА Триведи

  • ( NEW)Android работает с библиотекой Volley Рави тамада
  • надеюсь, что это поможет вам

    к сожалению, до сих пор нет документации для библиотеки волейбола, такой как JavaDocs. Только РЕПО на github и несколько учебных пособий через Интернет. Так что только хорошие документы это исходный код :). Когда я играл с залпом я читал это учебник.

    о post / get вы можете прочитать это:Volley-POST / получить параметры

    надеюсь, что это помогает

    это иллюстрация для создания запроса POST с помощью Volley. StringRequest используется для получения ответа в виде строки.
    Предполагая, что ваш REST API возвращает JSON. Ответ JSON от вашего API получен как строка здесь, которую вы можете снова скрыть в JSON и обработать ее дальше. Добавлены комментарии в коде.

    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);
    

    / / Ниже приведен класс 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);
        }
    }
    

    просто добавьте залп.библиотека jar для вашего проекта. а потом

    в соответствии с документацией 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);
    

    для получения дополнительной справки см. как пользователь залп

    простым способом

     private void load() {
        JsonArrayRequest arrayreq = new JsonArrayRequest(ip.ip+"loadcollege.php",
                new Response.Listener<JSONArray>() {
    
                    @Override
                    public void onResponse(JSONArray response) {
    
                        Album a;
    
                        try {
                            JSONArray data = new JSONArray(response.toString());
                            for (int i = 0; i < data.length(); i++) {
                                JSONObject c = data.getJSONObject(i);
                                one = c.getString("cname").split(",");
                                two=c.getString("caddress").split(",");
                                three = c.getString("image").split(",");
                                four = c.getString("cid").split(",");
                                five = c.getString("logo").split(",");
    
    
    
    
                                a = new Album(one[0].toString(),two[0].toString(),ip.ip+"images/"+ three[0].toString(),four[0].toString(),ip.ip+"images/"+ five[0].toString());
                                albumList.add(a);
    
                            }
                            adapter.notifyDataSetChanged();
    
    
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                },
                // The final parameter overrides the method onErrorResponse() and passes VolleyError
                //as a parameter
                new Response.ErrorListener() {
                    @Override
                    // Handles errors that occur due to Volley
                    public void onErrorResponse(VolleyError error) {
                        Log.e("Volley", "Error");
                    }
                }
        );
        // Adds the JSON array request "arrayreq" to the request queue
        requestQueue.add(arrayreq);
    }
    

    перед тестированием всех вышеперечисленных ответов, включите

    compile 'com.android.volley:volley:1.0.0'

    в вашем файле gradle и не забудьте добавить разрешение интернета в файл манифеста.

    использовать этот класс. Это обеспечивает вам простой способ подключения к базе данных.

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

    пример использования:

    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) {
             }
         });
    

    Comments

      Ничего не найдено.