xutils的使用
http://blog.csdn.net/u010663758/article/details/51296248
Get请求
1. RequestParams params = new RequestParams("https://www.baidu.com/"); // 网址(请替换成实际的网址)
2. params.addQueryStringParameter("key", "value"); // 参数(请替换成实际的参数与值)
3.
4. x.http().get(params, new CommonCallback<String>() {
5.
6. @Override
7. public void onCancelled(CancelledException arg0) {
8.
9. }
10.
11. // 注意:如果是自己onSuccess回调方法里写了一些导致程序崩溃的代码,也会回调道该方法,因此可以用以下方法区分是网络错误还是其他错误
12. // 还有一点,网络超时也会也报成其他错误,还需具体打印出错误内容比较容易跟踪查看
13. @Override
14. public void onError(Throwable ex, boolean isOnCallback) {
15.
16. Toast.makeText(x.app(), ex.getMessage(), Toast.LENGTH_LONG).show();
17. if (ex instanceof HttpException) { // 网络错误
18. HttpException httpEx = (HttpException) ex;
19. int responseCode = httpEx.getCode();
20. String responseMsg = httpEx.getMessage();
21. String errorResult = httpEx.getResult();
22. // ...
23. } else { // 其他错误
24. // ...
25. }
26.
27. }
28.
29. // 不管成功或者失败最后都会回调该接口
30. @Override
31. public void onFinished() {
32.
33. }
34.
35. @Override
36. public void onSuccess(String arg0) {
37.
38. }
39. });
Post请求
1. params.addBodyParameter("key", "value"); // 参数(请替换成实际的参数与值)
2.
3. x.http().post(params, new CommonCallback<String>() {
4.
5. @Override
6. public void onCancelled(CancelledException arg0) {
7.
8. }
9.
10. // 注意:如果是自己onSuccess回调方法里写了一些导致程序崩溃的代码,也会回调道该方法,因此可以用以下方法区分是网络错误还是其他错误
11. // 还有一点,网络超时也会也报成其他错误,还需具体打印出错误内容比较容易跟踪查看
12. @Override
13. public void onError(Throwable ex, boolean isOnCallback) {
14.
15. Toast.makeText(x.app(), ex.getMessage(), Toast.LENGTH_LONG).show();
16. if (ex instanceof HttpException) { // 网络错误
17. HttpException httpEx = (HttpException) ex;
18. int responseCode = httpEx.getCode();
19. String responseMsg = httpEx.getMessage();
20. String errorResult = httpEx.getResult();
21. // ...
22. } else { // 其他错误
23. // ...
24. }
25.
26. }
27.
28. // 不管成功或者失败最后都会回调该接口
29. @Override
30. public void onFinished() {
31.
32. }
33.
34. @Override
35. public void onSuccess(String arg0) {
36.
37. }
38. });
get的post的请求基本一致,也就添加参数的方法不同而已。调用get方法,添加参数是用addQueryStringParameter。调用post方法,添加参数是用addBodyParameter
传file异常时的处理方法;
http://www.jb51.net/article/98037.htm
//要传递给服务器的json格式参数
JSONObject json = new JSONObject();
try {
json.put("devId", id);
json.put("devName", devName);
json.put("keyWord", keyWord);
} catch (JSONException e) {
e.printStackTrace();
}
//构建RequestParams对象,传入请求的服务器地址URL
RequestParams params = new RequestParams(Constants.UPLOAD_FILE);
params.setAsJsonContent(true);
List<KeyValue> list = new ArrayList<>();
list.add(new KeyValue("file",new File(filePah)));
list.add(new KeyValue("parameters",json.toString()));
MultipartBody body = new MultipartBody(list,"UTF-8");
params.setRequestBody(body);
x.http().post(params, new org.xutils.common.Callback.CommonCallback<String>(){
@Override
public void onSuccess(String result) {
LogUtil.e("请求结果:" + result);
}
@Override
public void onFinished() {
//上传完成
}
@Override
public void onCancelled(CancelledException cex) {
//取消上传
}
@Override
public void onError(Throwable ex, boolean isOnCallback) {
//上传失败
LogUtil.e("请求失败:" + ex.toString());
}
});