Как вы используете Android Volley API?
Я думаю о реализации библиотеки Android Volley в моих следующих проектах ( презентация Google IO о Volley).
однако я не нашел серьезного API для этой библиотеки.
Как я могу загружать файлы, отправлять / получать запросы и добавлять парсер Gson как JSON парсер с помощью залпа?
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