Android联网app必用Get请求和Post请求的区别,网络编程代码实现
来源:互联网 发布:java 管理平台框架 编辑:程序博客网 时间:2024/05/16 13:53
Get请求优点:请求的参数拼接在url后面,没有请求体,使用简单 缺点:安全性能不高,有长度限制
Post请求优点:有请求体,安全性能高,没有长度限制 缺点:编写麻烦
HttpUrlConnection post方式提交步骤1.初始化Url,打开链接URL url = new URL(path);HttpURLConnection conn = (HttpURLConnection) url.openConnection();2.设置请求方式为postconn.setRequestMethod("POST"); 3.设置提交类型为表单类型conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");4.设置提交数据的长度conn.setRequestProperty("Content-Length", data.length());5.指定要给服务器写数据conn.setDoOutput(true);6.开启流,把数据以IO流的形式提交给服务器conn.getOutputStream().write(data.getBytes());7.获取返回码,处理逻辑int code = conn.getResponseCode();HttpClient步骤:1.初始化HttpClientHttpClient client = new DefaultHttpClient();2.初始化HttpGet get = new HttpGet(url);-->get方式请求HttpPost post = new HttpPost(url);-->post方式请求3.如果是post请求,需要设置请求体List<NameValuePair> parameters = new ArrayList<NameValuePair>();parameters.add(new BasicNameValuePair("key", value));post.setEntity(new UrlEncodedFormEntity(parameters, "utf-8"))4.执行HttpResponse response=client.execute(request);-->如果是post请求,放HttpPost对象,如果是get请求,放HttpGet对象;返回的是response对象5.根据Response对象获取requestCodeint code = getStatusLine().getStatusCode();//如果是200,代表请求成功,400系列是找不到资源,500系列是服务器报错6.获取返回的数据InputStream is =response.getEntity().getContent();可以用 EntityUtils.toString(response.getEntity());返回String类型字符串AsyncHttpClient get方式请求服务器1.初始化AsyncfHttpClient对象AsyncHttpClient client = new AsyncHttpClient();2.调用框架get方式提交的方法 /** * url:请求的路径 * responseHandler:传递一个实现了ResponseHandlerInterface的类 */ client.get(String url, ResponseHandlerInterface responseHandler); 3.实现ResponseHandlerInterface里面的两个方法@Overridepublic void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { //请求成功后会执行这个方法 //statusCode: 返回的状态吗 // headers:返回的头信息 // responseBody: 返回的内容}@Overridepublic void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) { //请求失败后会执行这个方法 //statusCode: 返回的状态吗 // headers:返回的头信息 // responseBody: 返回的内容 // error:失败的原因}AsyncHttpClient Post方式请求服务器1.初始化AsyncfHttpClient对象AsyncHttpClient client = new AsyncHttpClient();2.初始化参数体RequestParams params = new RequestParams();//1.如果传递的是字符串params.put(key, value);//2.如果传递的是文件params.put(key,file);//3.了解一下还可以传递map集合或者list集合等等3.调用框架get方式提交的方法 /** * url:请求的路径 * responseHandler:传递一个实现了ResponseHandlerInterface的类 * params:传递的参数 * / client.post(String url, RequestParams params, ResponseHandlerInterface responseHandler);4.实现ResponseHandlerInterface里面的两个方法@Overridepublic void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { //请求成功后会执行这个方法 //statusCode: 返回的状态吗 // headers:返回的头信息 // responseBody: 返回的内容}@Overridepublic void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) { //请求失败后会执行这个方法 //statusCode: 返回的状态吗 // headers:返回的头信息 // responseBody: 返回的内容 // error:失败的原因}
0 0
- Android联网app必用Get请求和Post请求的区别,网络编程代码实现
- android开发:网络编程之post与get请求区别?
- Get请求和Post请求的区别
- POST请求和GET请求的区别:
- Get请求和Post请求的区别
- GET请求和POST请求的区别
- get请求和post请求的区别
- get 请求和post请求的区别
- get请求和post请求的区别
- Get请求和Post请求的区别
- Get请求和POST请求的区别
- Get请求和Post请求的区别
- GET请求和POST请求的区别
- GET请求和POST请求的区别
- get请求和post请求的区别
- post请求和get请求的区别
- get 请求和post请求的区别
- GET请求和POST请求的区别
- Java反射机制-详解
- Android沉浸式状态栏的实现
- Servlet Session 跟踪
- 微信公众平台接口开发(一)
- Codeforces 337C:Quiz(贪心+规律+快速幂)
- Android联网app必用Get请求和Post请求的区别,网络编程代码实现
- python基础技巧(unfinished)
- 如何写出正确的单例模式
- 文章标题
- Android自定义View之仿QQ侧滑菜单实现
- 近期学习前端计划
- iOS组件化实践方案-LDBusMediator炼就
- WebRtc AudioRtpSender
- ArcGIS制图表达Representation实战篇4-自由式制图表达