您的位置:首页 > 理论基础 > 计算机网络

Android开发笔记-使用Volley开源库进行Http网络请求(POST方式)

2016-01-29 10:01 1311 查看
之前使用了开源网络请求库Volley进行了Http GET请求。这次我们讨论使用Volley进行POST请求。POST请求比GET稍微复杂一点点。可以认为是建立在GET的基础上。POST使发送的url更加简洁,安全,高效,使能发送更大量的数据。

该例子仍旧是对聚合数据的手机号码归属地进行请求,返回JSON数据,显示在TextView上。不要忘了在AndroidMenifest.xml内加入Internet权限。直接上代码:

[java] view
plain copy

print?

public class MainActivity extends Activity {

private TextView text;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

text = (TextView) findViewById(R.id.id_text);

volleyPost();

}

public void volleyPost() {

String url = "http://apis.juhe.cn/mobile/get";//这里和GET方式不同的是去掉了“?”后面的参数;

/**

* 第一个参数指定了请求方式,第二个参数指定了url,第三个参数指定了正确访问的返回结果,第四个参数是访问失败后的业务逻辑;

*

*/

StringRequest request = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {

@Override

public void onResponse(String result) {

text.setText(result);//返回结果显示在TextView;

}

}, new Response.ErrorListener() {

@Override

public void onErrorResponse(VolleyError volleyError) {

text.setText("未能请求到数据");

}

}) {

@Override

protected Map<String, String> getParams() throws AuthFailureError {//在这里封装了需要发送的参数;

HashMap<String, String> map = new HashMap<>();

map.put("phone", "13429667914");//以键值对的形式存放;

map.put("key", "9719c91bd4ac2647c67c6cd067b5cb8e");

return map;

}

};

Volley.newRequestQueue(getApplicationContext()).add(request);//加入请求队列;

}//volleyPost();

}

最后的实现效果如下截图所示:




至此,已经成功实现了Http POST请求。可以根据业务需求对返回的JSON数据进行解析。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: