一、获取Json串
String jsonString = PhoneUtil.doRequestForString(mContext, url,
PhoneUtil.HTTP_POST, params, true);
public static String doRequestForString(Context context, String serverUrl,
int remoteType, Map<String, String> hashMap, boolean log)
throws Exception {
int timeoutConnection = mTimeoutConnection;
int timeoutSocket = mTimeoutSocket;
return doRequestForString(context, serverUrl, remoteType, hashMap,
timeoutConnection, timeoutSocket, log);
}
public static String doRequestForString(Context context, String serverUrl,
int remoteType, Map<String, String> hashMap, int timeoutConnection,
int timeoutSocket, boolean log) throws Exception {
String result = "";
HttpEntity entity = doRequestForEntity(context, serverUrl, remoteType,
hashMap, timeoutConnection, timeoutSocket, log);
if (entity != null) {
result = EntityUtils.toString(entity, "UTF-8");
if (log)
Log.i("=====", serverUrl + " 请求结果:" + result);
} else {
if (log)
Log.i("=====", serverUrl + " 请求结果为空");
}
return result;
}
public static HttpEntity doRequestForEntity(Context context,
String serverUrl, int remoteType, Map<String, String> hashMap,
boolean log) throws Exception {
int timeoutConnection = mTimeoutConnection;
int timeoutSocket = mTimeoutSocket;
return doRequestForEntity(context, serverUrl, remoteType, hashMap,
timeoutConnection, timeoutSocket, log);
}
public static HttpEntity doRequestForEntity(Context context,
String serverUrl, int remoteType, Map<String, String> hashMap,
int timeoutConnection, int timeoutSocket, boolean log)
throws Exception {
StringBuilder sb = new StringBuilder(serverUrl);
if (hashMap != null) {
for (Entry<String, String> entry : hashMap.entrySet()) {
if (!sb.toString().contains("?"))
sb.append("?" + entry.getKey() + "=" + entry.getValue());
else
sb.append("&" + entry.getKey() + "=" + entry.getValue());
}
}
if (log)
Log.d("====", sb + " 发起网络请求");
HttpEntity entity = null;
HttpUriRequest request = null;
if (remoteType == HTTP_POST) {
if (hashMap != null) {
List<NameValuePair> params = new ArrayList<NameValuePair>();
for (Entry<String, String> entry : hashMap.entrySet()) {
params.add(new BasicNameValuePair(entry.getKey(), entry
.getValue()));
}
HttpPost post = new HttpPost(serverUrl);
post.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
request = post;
} else {
HttpPost post = new HttpPost(serverUrl);
request = post;
}
} else if (remoteType == HTTP_GET) {
if (hashMap != null) {
for (Entry<String, String> entry : hashMap.entrySet()) {
if (!serverUrl.contains("?"))
serverUrl += "?" + entry.getKey() + "="
+ entry.getValue();
else
serverUrl += "&" + entry.getKey() + "="
+ entry.getValue();
}
}
request = new HttpGet(serverUrl);
}
HttpParams httpParameters = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParameters,
timeoutConnection);
HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket);
DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters);
HttpResponse httpResponse = httpClient.execute(request);
int status = httpResponse.getStatusLine().getStatusCode();
if (status != 401) {
entity = httpResponse.getEntity();
}
return entity;
}
二、将Json串转换为List集合
public static List<PhoneNumberModel> jsonToList(String json) {
List<PhoneNumberModel> numberModels = new ArrayList<PhoneNumberModel>();
try {
JSONObject jsonObject = new JSONObject(json);
if (jsonObject.optBoolean("success", false)) {
JSONArray jsonArray = jsonObject.getJSONArray("data");
PhoneNumberModel model;
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject dcObject = jsonArray.getJSONObject(i)
.getJSONObject("dc");
JSONObject cbObject = jsonArray.getJSONObject(i)
.getJSONObject("cb");
model = new PhoneNumberModel();
model.setJuLi(dcObject.optDouble("distance"));
model.setName(cbObject.optString("NAME1"));
model.setNumber(cbObject.optString("AREA_CODE", "")
+ cbObject.optString("TEL", ""));
model.setFrom(MyApplication.getMyApplication().getString(
R.string.page_tag));
numberModels.add(model);
}
}
} catch (JSONException e) {
e.printStackTrace();
}
return numberModels;
}