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

来源:互联网 发布:vb语言有什么用 编辑:程序博客网 时间:2024/05/19 12:16

在 项目中请求网络数据时,有时候因为后台返回数据不是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;
}



}

0 0
原创粉丝点击