Volley – trechos de código

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