Introdução
Para obter detalhes, consulte Google I / O 2013 – Volley: Easy, Fast Networking para Android.
Adicione a biblioteca Volley ao seu projeto a partir do repositório git.
git clone https://android.googlesource.com/platform/frameworks/volley
Conceito básico
Primeiro, precisamos criar o objeto Request Queue .
RequestQueue queue = Volley.newRequestQueue(this);
Em seguida, crie a solicitação do tipo apropriado, aqui estamos usando String Request .
Uri.Builder uri = new Uri.Builder();
uri.scheme("http");
uri.authority("httpbin.org");
uri.path("get");
uri.appendQueryParameter("name", "Jon Doe");
uri.appendQueryParameter("age", "21");
String url = uri.build().toString();
StringRequest request = new StringRequest(
Request.Method.GET,
url,
createSuccessListener(),
createErrorListener())
Por fim, adicione a solicitação à fila de despacho.
requestQueue.add(request);
O listener de erro é o mesmo para qualquer tipo de solicitação.
private static Response.ErrorListener createErrorListener() {
return new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d(TAG, "Error Response code: " + error.getMessage());
}
};
}
O ouvinte de sucesso varia, de acordo com o tipo de solicitação, para String Request ele retornará o objeto String .
private static Response.Listener<String> createSuccessListener() {
return new Response.Listener<String>() {
@Override
public void onResponse(String response) {
// TODO parse response
}
};
}
Solicitação POST
Para passar parâmetros para a solicitação POST, você deve substituir o método Request.getParams () .
Uri.Builder uri = new Uri.Builder();
uri.scheme("http");
uri.authority("httpbin.org");
uri.path("post");
String url = uri.build().toString();
StringRequest request = new StringRequest(
Request.Method.POST,
url,
createSuccessListener(),
createErrorListener()) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> map = new HashMap<String, String>();
map.put("name", "Jon Doe");
map.put("age", "21");
return map;
}
};
Pedido JSON
Para JSON, temos dois tipos de solicitações JsonObjectRequest e JsonArrayRequest
JsonObjectRequest request = new JsonObjectRequest(
Request.Method.GET,
url,
null,
createSuccessListener(),
createErrorListener());
Autenticação HTTP Básica
Defina um autenticador padrão. Ele será chamado sempre que o realm para o qual a URL está apontando requer autorização.
Authenticator.setDefault(new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("user", "passwd".toCharArray());
}
});
Tempo limite e nova tentativa
request.setRetryPolicy(
new DefaultRetryPolicy(
DefaultRetryPolicy.DEFAULT_TIMEOUT_MS,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
Mais está vindo