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数据进行解析。
该例子仍旧是对聚合数据的手机号码归属地进行请求,返回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数据进行解析。
相关文章推荐
- 使用HttpsURLConnection发送POST请求
- Android Http协议
- 网络数据截取工具-抓包
- 透过浏览器看HTTP缓存
- TC SRM 680(div 2) 1000pts
- HTTPS的建立流程
- 使用boost::asio开发网络服务器
- 厦门巨游网络科技有限公司(HOTPOWER)承接游戏UI外包
- [网络通信]socket编程相关
- 节点重新启动、驱逐或 CRS 意外重启
- 【开源中国Android客户端】源码分析 网络数据传输接口
- #TCP你学得会# 之 client重用连接之时
- #TCP你学得会# Wireshark中的"TCP Spurious Retransmission"
- 8、TCP报文重组合算法
- 关于Android HTTP请求URI中包含特殊字符,例如中文,空格等,请求400
- [TCP协议]三次握手及四次挥手
- 网络编程(三) 下载任务,支持断点续传
- 2016-1-28 图解HTTP(03)
- Android开发请求网络方式详解
- HttpURLConnetion的使用