volley 之get、put、post、delete

来源:互联网 发布:富甲天下3武将数据 编辑:程序博客网 时间:2024/05/20 18:20

Google released Android Volley Library around May/June 2013, which has been internally used by Google for some time. It is supposed to provide Fast Networking Operations and also takes care of Threads nicely. If you are unfamiliar with Volley, please see Google I/O 2013 Video

Unfortunately, there is almost no documentation on Volley. So, I put together code snippets on how to make Volley HTTP Requests (GET, POST, PUT, DELETE).


Setting up Android Volley Library

Setting up is straight-forward. Clone the Volley project from here and then import the Volley into project. A comprehensive tutorial on setting up can be found here.


Key Classes of Android Volley

The following are the Key classes of Volley:

  • - RequestQueue: A Queue containing the Network/HTTP Requests that needs to be made.
  • - Request: A Base Class which contains Network related information like HTTP Methods.
  • - StringRequest: HTTP Request where the response is parsed a String. View Source
  • - JsonObjectRequest: HTTP Request where the response is JSONObject. View Source


Getting Started with Android Volley

At first make a RequestQueue, which holds the HTTP Requests. View Source. Ideally, the RequestQueue should be made once and then referred to it across the Application. The Application is an ideal place to make it.

?
1
RequestQueue queue = Volley.newRequestQueue(this); // this = context


Making GET Requests

Making GET Requests is simple. The example below uses JsonObjectRequest. It prepares a JsonObjectRequest and passes and then adds it to RequestQueue. The JsonObject accepts 4 parameters (Http methodUrlJson valuesResponse Listener - Invoked on success, Error Listener - Invoked on failure).

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
finalString url = "http://httpbin.org/get?param1=hello";
 
// prepare the Request
JsonObjectRequest getRequest = newJsonObjectRequest(Request.Method.GET, url, null,
    newResponse.Listener<JSONObject>()
    {
        @Override
        publicvoid onResponse(JSONObject response) {  
                        // display response    
            Log.d("Response", response.toString());
        }
    },
    newResponse.ErrorListener()
    {
         @Override
         publicvoid onErrorResponse(VolleyError error) {           
            Log.d("Error.Response", response);
       }
    }
);
 
// add it to the RequestQueue  
queue.add(getRequest);


Making POST Requests

For a POST request, to add form parameters/values, the getParams() method needs to be overridden and a Map needs to be returned.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
url = "http://httpbin.org/post";
StringRequest postRequest = newStringRequest(Request.Method.POST, url,
    newResponse.Listener<String>()
    {
        @Override
        publicvoid onResponse(String response) {
            // response
            Log.d("Response", response);
        }
    },
    newResponse.ErrorListener()
    {
         @Override
         publicvoid onErrorResponse(VolleyError error) {
             // error
             Log.d("Error.Response", response);
       }
    }
) {    
    @Override
    protectedMap<String, String> getParams()
    
            Map<String, String>  params = newHashMap<String, String>(); 
            params.put("name","Alif"); 
            params.put("domain","http://itsalif.info");
             
            returnparams; 
    }
};
queue.add(postRequest);


Making PUT Requests

Creating PUT Request is same as POST basically.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
url = "http://httpbin.org/put";
StringRequest putRequest = newStringRequest(Request.Method.PUT, url,
    newResponse.Listener<String>()
    {
        @Override
        publicvoid onResponse(String response) {
            // response
            Log.d("Response", response);
        }
    },
    newResponse.ErrorListener()
    {
         @Override
         publicvoid onErrorResponse(VolleyError error) {
                         // error
             Log.d("Error.Response", response);
       }
    }
) {
 
    @Override
    protectedMap<String, String> getParams()
    
            Map<String, String>  params = newHashMap<String, String> (); 
            params.put("name","Alif"); 
            params.put("domain","http://itsalif.info");
             
            returnparams; 
    }
 
};
 
queue.add(putRequest);


Making DELETE Requests

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
url = "http://httpbin.org/delete";
StringRequest dr = newStringRequest(Request.Method.DELETE, url,
    newResponse.Listener<String>()
    {
        @Override
        publicvoid onResponse(String response) {
            // response
            Toast.makeText($this, response, Toast.LENGTH_LONG).show();
        }
    },
    newResponse.ErrorListener()
    {
         @Override
         publicvoid onErrorResponse(VolleyError error) {
             // error.
              
       }
    }
);
queue.add(dr);

Hope it helps!

0 0
原创粉丝点击