volley两种网络请求方式
2016-03-18 13:15
302 查看
今天简单总结Volley两种网络请求方式(GET与POST)
有Web开发经验的对这两种方法肯定很熟悉,一般来说,要传递数据时推荐用POST,不推荐用GET(GET会暴露出传递的参数),好了废话不说了,直接上代码。
1.GET方式请求
首先设置服务器地址,我这是Tomcat本地服务器.
后面可以带上参数或者不带,这个要看服务器的接口是什么样的了。
主要说一下带上参数的,一般可以用来新闻等
网络请求成功后返回的结果类型是String,也可以是json,主要看需求
然后看具体实现:
其中,showProgress()和hiddenProgress()用来控制显示,隐藏进度框
2.POST方式请求
和GET方式基本一样,不同的是传递参数的方式,直接看代码
如果需要设置头文件等
则重写getHeaders()等方法即可
服务器端用的是javaEE,代码很简单,也贴一下
package com.d.upload.Servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class StringGetServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String page = request.getParameter("page");
String count = request.getParameter("count");
ServletOutputStream outputStream = response.getOutputStream();
if (page.equals("10") && count.equals("20")) {
outputStream.write("success".getBytes());
} else {
outputStream.write("failure".getBytes());
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String page = request.getParameter("page");
String count = request.getParameter("count");
ServletOutputStream outputStream = response.getOutputStream();
if (page.equals("10") && count.equals("20")) {
outputStream.write("success".getBytes());
} else {
outputStream.write("failure".getBytes());
}
}
}
下一篇会写一下Volley上传图片,个人水平有限,如有错误或者更好的意见,请多多指教。
有Web开发经验的对这两种方法肯定很熟悉,一般来说,要传递数据时推荐用POST,不推荐用GET(GET会暴露出传递的参数),好了废话不说了,直接上代码。
1.GET方式请求
首先设置服务器地址,我这是Tomcat本地服务器.
String url = "http://192.168.247.1:9060/Uploadfile/stringGetServlet";
后面可以带上参数或者不带,这个要看服务器的接口是什么样的了。
主要说一下带上参数的,一般可以用来新闻等
网络请求成功后返回的结果类型是String,也可以是json,主要看需求
然后看具体实现:
private void RequestStringByGet() { showProgress(); String url = "http://192.168.247.1:9060/Uploadfile/stringGetServlet"; String url2 = url + "?page=%s&count=%s"; String page = "10"; String count = "20"; String strUrl = String.format(url2, page, count); StringRequest stringRequest = new StringRequest(Request.Method.GET, strUrl, new Response.Listener<String>() { @Override public void onResponse(String response) { Toast.makeText(MainActivity.this, "请求成功,返回结果是:" + response, Toast.LENGTH_LONG).show(); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Log.e("error", "failure" + error.getMessage(), error); Toast.makeText(MainActivity.this, "请求失败", Toast.LENGTH_LONG).show(); } }); hiddenProgress(); requestQueue.add(stringRequest); }
其中,showProgress()和hiddenProgress()用来控制显示,隐藏进度框
private void showProgress() { mProgress = ProgressDialog.show(this, "", "Loading..."); } private void hiddenProgress() { if (mProgress != null && mProgress.isShowing()) { mProgress.cancel(); } }
2.POST方式请求
和GET方式基本一样,不同的是传递参数的方式,直接看代码
private void RequestStringByPost() { showProgress(); String url = "http://192.168.247.1:9060/Uploadfile/stringGetServlet"; StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() { @Override public void onResponse(String response) { Toast.makeText(MainActivity.this, "请求成功,返回结果是:" + response, Toast.LENGTH_LONG).show(); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Log.e("error", "failure" + error.getMessage(), error); Toast.makeText(MainActivity.this, "请求失败", Toast.LENGTH_LONG).show(); } }) { @Override protected Map<String, String> getParams() throws AuthFailureError { Map map = new HashMap(); map.put("page", "10"); map.put("count", "20"); return map; } }; hiddenProgress(); requestQueue.add(stringRequest); }
如果需要设置头文件等
则重写getHeaders()等方法即可
@Override public Map<String, String> getHeaders() throws AuthFailureError { return super.getHeaders(); }
服务器端用的是javaEE,代码很简单,也贴一下
package com.d.upload.Servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class StringGetServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String page = request.getParameter("page");
String count = request.getParameter("count");
ServletOutputStream outputStream = response.getOutputStream();
if (page.equals("10") && count.equals("20")) {
outputStream.write("success".getBytes());
} else {
outputStream.write("failure".getBytes());
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String page = request.getParameter("page");
String count = request.getParameter("count");
ServletOutputStream outputStream = response.getOutputStream();
if (page.equals("10") && count.equals("20")) {
outputStream.write("success".getBytes());
} else {
outputStream.write("failure".getBytes());
}
}
}
下一篇会写一下Volley上传图片,个人水平有限,如有错误或者更好的意见,请多多指教。
相关文章推荐
- http协议错误码
- ubuntu&redhat网络配置
- TCP慢启动、拥塞避免、快速重传、快速恢复
- Google网络请求框架Volley源码浅析(一)
- Cocos2d-x 读取网络图片创建精灵
- HttpClient在 AndroidStudio中使用
- 将串口转换成TCP连接
- java project 项目的开发--简单的http请求, 模仿浏览器发出请求get
- 网络编程 实现服务器与客户端通讯
- "Program received signal SIGPIPE, Broken pipe."解决
- Http_load
- 关于iOS9网络请求失败问题
- 网络进程通信——Socket
- http与https的区别
- HttpClient和HttpURLConnection的区别
- 【Solr】新建core后,启动服务访问web报错 HTTP Status 503
- IOS 网络浅析-(五 xml解析)
- Android Volley完全解析(二),使用Volley加载网络图片
- Spring MVC------No mapping found for HTTP request with URI
- HTTP