您的位置:首页 > 理论基础 > 计算机网络

判断网络请求数据是否是json

2018-11-21 17:08 483 查看
版权声明:所有原创,转载请在开头注明出处 https://blog.csdn.net/SELECT_BIN/article/details/84326225

在 项目中请求网络数据时,有时候因为后台返回数据不是json数据会导致程序崩掉。所以在请求网络数据的方法中直接先判断再操作。

public class MyHttpUtils {
private static HttpUtils httpUtils;


// 对post请求的封装
public static void post(String url, Map<String, String> map,
final StringCallBack callback) {
httpUtils = new HttpUtils();


RequestParams params = getParams(map);


httpUtils.send(HttpMethod.POST, url, params,
new RequestCallBack<String>() {


@Override
public void onSuccess(ResponseInfo<String> responseInfo) {
// 返回数据
boolean json = isJson(responseInfo.result);
if (json == true) {
callback.stringCallback(responseInfo.result);
}

}


@Override
public void onFailure(HttpException error, String msg) {
System.out.println("================" + "失败");
// return;
}
});
}


// 对参数的封装
public static RequestParams getParams(Map<String, String> map) {
RequestParams params = new RequestParams();
ArrayList<NameValuePair> arrayList = new ArrayList<NameValuePair>();
BasicNameValuePair nameValuePair;


for (Map.Entry entry : map.entrySet()) {
// 获取键
String key = (String) entry.getKey();
// 获取值
String values = map.get(key);


try {
// 对值进行加密
String encode = DES3.encode(values);


nameValuePair = new BasicNameValuePair(key, encode);


arrayList.add(nameValuePair);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
params.addBodyParameter(arrayList);


return params;
}


// 将参数放入map集合
public static HashMap getMap() {
HashMap<String, String> map = new HashMap<String, String>();
map.put("key1", "values1");
map.put("key2", "values2");


return map;
}


/**
* 判断是否是json结构
*/
public static boolean isJson(String value) {
try {
new JSONObject(value);
} catch (JSONException e) {
return false;
}
return true;
}


}
--------------------- 
作者:好个李先生 
来源:CSDN 
原文:https://blog.csdn.net/jiyidehao/article/details/51275910 
版权声明:本文为博主原创文章,转载请附上博文链接!

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐