博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android Http请求框架二:xUtils 框架网络请求
阅读量:4556 次
发布时间:2019-06-08

本文共 6145 字,大约阅读时间需要 20 分钟。

一:对Http不了解的请看

 

二、正文

1、xUtils 下载地址

    github 下载地址  :

 

2、关于网络请求的方法

package com.jike.shanglv.NetAndJson;import java.io.File;import com.lidroid.xutils.HttpUtils;import com.lidroid.xutils.exception.HttpException;import com.lidroid.xutils.http.RequestParams;import com.lidroid.xutils.http.ResponseInfo;import com.lidroid.xutils.http.ResponseStream;import com.lidroid.xutils.http.callback.RequestCallBack;import com.lidroid.xutils.http.client.HttpRequest;import com.lidroid.xutils.util.LogUtils;public class HttpUtil {	String result = "" ;	/**	 * Get请求  异步的	 * @param url  服务器地址	 * @param userkey 	 * @param str	 * @param sign 签名	 * @return	 */	public String xutilsGet( String url , String userkey , String str , String sign  ){		RequestParams params = new RequestParams();		params.addQueryStringParameter("userkey", userkey );		params.addQueryStringParameter("str", str );		params.addQueryStringParameter("sign", sign );		HttpUtils http = new HttpUtils();		http.configCurrentHttpCacheExpiry(1000 * 10); //设置超时时间   10s		http.send(HttpRequest.HttpMethod.GET,				url ,				new RequestCallBack
(){ @Override public void onLoading(long total, long current, boolean isUploading) { } @Override public void onSuccess(ResponseInfo
responseInfo) { result = responseInfo.result.toString() ; } @Override public void onStart() { } @Override public void onFailure(HttpException error, String msg) { } }); return result ; } /** * Post请求 异步的 * @param url * @param userkey * @param str * @param sign * @return */ public String xutilsPost( String url , String userkey , String str , String sign ){ RequestParams params = new RequestParams(); params.addQueryStringParameter("userkey", userkey ); params.addQueryStringParameter("str", str ); params.addQueryStringParameter("sign", sign ); // 只包含字符串参数时默认使用BodyParamsEntity, // 类似于UrlEncodedFormEntity("application/x-www-form-urlencoded")。 //params.addBodyParameter("name", "value"); // 加入文件参数后默认使用MultipartEntity("multipart/form-data"), // 如需"multipart/related",xUtils中提供的MultipartEntity支持设置subType为"related"。 // 使用params.setBodyEntity(httpEntity)可设置更多类型的HttpEntity(如: // MultipartEntity,BodyParamsEntity,FileUploadEntity,InputStreamUploadEntity,StringEntity)。 // 例如发送json参数:params.setBodyEntity(new StringEntity(jsonStr,charset)); HttpUtils http = new HttpUtils(); http.configCurrentHttpCacheExpiry(1000 * 10); //设置超时时间 10s http.send(HttpRequest.HttpMethod.POST , url , params, new RequestCallBack
() { @Override public void onStart() { } @Override public void onLoading(long total, long current, boolean isUploading) { } @Override public void onSuccess(ResponseInfo
responseInfo) { result = responseInfo.result.toString() ; } @Override public void onFailure(HttpException error, String msg) { } }); return result ; } /** * 带上传文件的 Post请求 异步的 * @param url * @param userkey * @param str * @param sign * @param picString 文件的地址 * @return */ public String xutilsFilePost( String url , String userkey , String str , String sign , String picString ){ RequestParams params = new RequestParams(); params.addQueryStringParameter("userkey", userkey ); params.addQueryStringParameter("str", str ); params.addQueryStringParameter("sign", sign ); // 只包含字符串参数时默认使用BodyParamsEntity, // 类似于UrlEncodedFormEntity("application/x-www-form-urlencoded")。 //params.addBodyParameter("name", "value"); // 加入文件参数后默认使用MultipartEntity("multipart/form-data"), // 如需"multipart/related",xUtils中提供的MultipartEntity支持设置subType为"related"。 // 使用params.setBodyEntity(httpEntity)可设置更多类型的HttpEntity(如: // MultipartEntity,BodyParamsEntity,FileUploadEntity,InputStreamUploadEntity,StringEntity)。 // 例如发送json参数:params.setBodyEntity(new StringEntity(jsonStr,charset)); params.addBodyParameter("picture", new File( picString )) ; com.lidroid.xutils.HttpUtils http = new com.lidroid.xutils.HttpUtils(); http.send(HttpRequest.HttpMethod.POST , url , params, new RequestCallBack
() { @Override public void onStart() { } @Override public void onLoading(long total, long current, boolean isUploading) { } @Override public void onSuccess(ResponseInfo
responseInfo) { result = responseInfo.result.toString() ; } @Override public void onFailure(HttpException error, String msg) { } }); return result ; } //-------------------以上的代码 是 异步请求的, 以下的代码是同步请求的-------------------------// /** * Get同步请求 必须在异步块儿中执行 * @param url * @param userkey * @param str * @param sign * @return */ private String xutilsGetSync(String url , String userkey , String str , String sign ) { RequestParams params = new RequestParams(); params.addQueryStringParameter("userkey", userkey ); params.addQueryStringParameter("str", str ); params.addQueryStringParameter("sign", sign ); HttpUtils http = new HttpUtils() ; http.configCurrentHttpCacheExpiry(1000 * 10); //设置超时时间 try { ResponseStream responseStream = http.sendSync(HttpRequest.HttpMethod.GET, url , params ) ; //int statusCode = responseStream.getStatusCode(); //Header[] headers = responseStream.getBaseResponse().getAllHeaders(); return responseStream.readString(); } catch (Exception e) { LogUtils.e(e.getMessage(), e); } return null; } /** * Post同步请求 必须在异步块儿中执行 * @param url * @param userkey * @param str * @param sign * @return */ private String xutilsPostSync(String url , String userkey , String str , String sign ) { RequestParams params = new RequestParams(); params.addQueryStringParameter("userkey", userkey ); params.addQueryStringParameter("str", str ); params.addQueryStringParameter("sign", sign ); HttpUtils http = new HttpUtils() ; http.configCurrentHttpCacheExpiry(1000 * 10); //设置超时时间 try { ResponseStream responseStream = http.sendSync(HttpRequest.HttpMethod.POST , url , params ) ; //int statusCode = responseStream.getStatusCode(); //Header[] headers = responseStream.getBaseResponse().getAllHeaders(); return responseStream.readString(); } catch (Exception e) { LogUtils.e(e.getMessage(), e); } return null; }}

 

转载于:https://www.cnblogs.com/zhaoyanjun/p/4477089.html

你可能感兴趣的文章
推荐一款在IntelliJ IDEA中使用微信/QQ的插件
查看>>
github简单操作
查看>>
ZendStudio10 代码格式化 xml
查看>>
TWaver动画之雷达扫描效果
查看>>
linux压缩及vi操作
查看>>
蓝桥杯java 基础练习 FJ的字符串
查看>>
jQuery文档处理
查看>>
[国嵌攻略][119][Linux中断处理程序设计]
查看>>
upstream实现内网网站在公网访问
查看>>
排序——归并排序
查看>>
JAVA实现对服务器的访问的两种方法
查看>>
搭建GitLab的Hexo博客记录
查看>>
NYOJ 496 [巡回赛-拓扑排序]
查看>>
redis五种数据类型的使用
查看>>
Form表单中的onClick,onSubmit和submit
查看>>
Python-SocketServer源码
查看>>
JavaScript-基本数据类型
查看>>
CentOS 7.3 实体机启动 U 盘制作
查看>>
mysql数据库
查看>>
dede调用文章里的图片
查看>>