Android Http请求框架二:xUtils 框架网络请求
来源:互联网 发布:大唐 数据所 副所长 编辑:程序博客网 时间:2024/05/29 18:27
1、xUtils 下载地址
github 下载地址 : https://github.com/wyouflf/xUtils
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<String>(){
@Override
public
void
onLoading(
long
total,
long
current,
boolean
isUploading) {
}
@Override
public
void
onSuccess(ResponseInfo<String> 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<String>() {
@Override
public
void
onStart() {
}
@Override
public
void
onLoading(
long
total,
long
current,
boolean
isUploading) {
}
@Override
public
void
onSuccess(ResponseInfo<String> 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<String>() {
@Override
public
void
onStart() {
}
@Override
public
void
onLoading(
long
total,
long
current,
boolean
isUploading) {
}
@Override
public
void
onSuccess(ResponseInfo<String> responseInfo) {
result = responseInfo.result.toString() ;
}
@Override
public
void
onFailure(HttpException error, String msg) {
}
});
return
result ;
}
//-------------------以上的代码 是 异步请求的, 以下的代码是同步请求的-------------------------//<br>
/**
* 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
;
}
}
0 1
- Android Http请求框架二:xUtils 框架网络请求
- Android Http请求框架二:xUtils 框架网络请求
- Android网络框架xUtils的Http网络数据请求操作
- Xutils框架之网络请求
- http网络请求框架
- Android常用网络请求框架xUtils、OkHttp、Volley、Retorfit对比
- Android网络请求框架android-async-http
- Android http网络请求框架搭建
- Android网络请求框架
- Android 网络请求 框架
- Android 网络请求框架总结(二)
- Android网络请求框架之Retrofit(二)
- Android基于http的网络请求async-http框架
- android Volley框架 http请求
- Android网络请求框架AsyncHttpClient (android-async-http)介绍说明
- Android网络通信请求框架—Android-async-http
- Android网络请求框架:Android-async-http简单使用
- 使用android-async-http来封装Android网络请求框架
- html5 canvas画图
- poj 3984 迷宫问题(BFS+回溯)
- 文件的存取
- UML图
- HDU 4229 Vive la Difference!
- Android Http请求框架二:xUtils 框架网络请求
- STL中 map的用法
- SecureCRT上传、下载文件命令sz与rz用法实例
- GraphX 实现K-Core
- CF 567B(Berland National Library-看成折线图)
- vc屏幕截图实现
- Spring下@Resource, @Autowired和@Inject的区别与联系
- Windows(2003、xp)下配置NTP时间服务器
- C++内存管理