摘自:http://blog.csdn.net/rain_butterfly/article/details/37812371
import com.lidroid.xutils.HttpUtils;
import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.HttpHandler;
import com.lidroid.xutils.http.RequestParams;
import com.lidroid.xutils.http.ResponseInfo;
import com.lidroid.xutils.http.callback.RequestCallBack;
import com.lidroid.xutils.http.client.HttpRequest;
public class ReqVersion {
private void get() {
HttpUtils http = new HttpUtils();
http.send(HttpRequest.HttpMethod.GET, "http://www.lidroid.com",
new RequestCallBack<String>() {
@Override
public void onLoading(long total, long current,
boolean isUploading) {
showText.setText(current + "/" + total);
}
@Override
public void onSuccess(ResponseInfo<String> responseInfo) {
showText.setText(responseInfo.result);
}
@Override
public void onStart() {
}
@Override
public void onFailure(HttpException error, String msg) {
}
});
}
private void post() {
RequestParams params = new RequestParams();
params.addHeader("name", "value");
params.addQueryStringParameter("name", "value");
// 只包含字符串参数时默认使用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("file", new File("path"));
HttpUtils http = new HttpUtils();
http.send(HttpRequest.HttpMethod.POST, "uploadUrl....", params,
new RequestCallBack<String>() {
@Override
public void onStart() {
showText.setText("conn...");
}
@Override
public void onLoading(long total, long current,
boolean isUploading) {
if (isUploading) {
showText.setText("upload: " + current + "/" + total);
} else {
showText.setText("reply: " + current + "/" + total);
}
}
@Override
public void onSuccess(ResponseInfo<String> responseInfo) {
showText.setText("reply: " + responseInfo.result);
}
@Override
public void onFailure(HttpException error, String msg) {
showText.setText(error.getExceptionCode() + ":" + msg);
}
});
}
private void downLoad(String url, String localPath) {
HttpUtils http = new HttpUtils();
HttpHandler handler = http.download(url, localPath, true, // 如果目标文件存在,接着未完成的部分继续下载。服务器不支持RANGE时将从新下载。
true, // 如果从请求返回信息中获取到文件名,下载完成后自动重命名。
new RequestCallBack<File>() {
@Override
public void onStart() {
showText.setText("conn...");
}
@Override
public void onLoading(long total, long current,
boolean isUploading) {
showText.setText(current + "/" + total);
}
@Override
public void onSuccess(ResponseInfo<File> responseInfo) {
showText.setText("downloaded:"
+ responseInfo.result.getPath());
}
@Override
public void onFailure(HttpException error, String msg) {
showText.setText(msg);
}
});
// 调用cancel()方法停止下载
// handler.cancel();
}
}
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.callback.RequestCallBack;
import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;
public class XUtilsGet {// 自动实现异步处理,自己不用处理
public void getJson(String url, RequestParams params,
final IOAuthCallBack iOAuthCallBack) {
HttpUtils http = new HttpUtils();
http.configCurrentHttpCacheExpiry(1000 * 10);// 设置超时时间
http.send(HttpMethod.GET, url, params, new RequestCallBack<String>() {// 接口回调
@Override
public void onFailure(HttpException arg0, String arg1) {
}
@Override
public void onSuccess(ResponseInfo<String> info) {
iOAuthCallBack.getIOAuthCallBack(info.result);// 利用接口回调数据传输
}
});
}
public void getCataJson(int cityId, IOAuthCallBack iOAuthCallBack) {// 外部接口函数
String url = "http://xxxxxxxxxx";
RequestParams params = new RequestParams();
params.addQueryStringParameter("currentCityId", cityId + "");
getJson(url, params, iOAuthCallBack);
}
}
封装的post工具类:
public class xUtilsPost {//自动实现异步处理
public void doPost(String url, RequestParams params,
final IOAuthCallBack iOAuthCallBack) {
HttpUtils http = new HttpUtils();
http.configCurrentHttpCacheExpiry(1000 * 10);
http.send(HttpMethod.POST, url, params, new RequestCallBack<String>() {
@Override
public void onFailure(HttpException arg0, String arg1) {
// TODO Auto-generated method stub
}
@Override
public void onSuccess(ResponseInfo<String> info) {
// TODO Auto-generated method stub
iOAuthCallBack.getIOAuthCallBack(info.result);
}
});
}
public void doPostLogin(int cityId, IOAuthCallBack iOAuthCallBack) {
String url = "http://xxxxxxxxxxxx";
RequestParams params = new RequestParams();
params.addBodyParameter("currentCityId", cityId + "");
params.addBodyParameter("path", "/apps/postCatch");
doPost(url, params, iOAuthCallBack);
}
}