项目中频繁要用到网络获取JSON数据并且进行处理,我干脆将代码写成一个类以后拿去用算了。
package com.example.luntan;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import android.content.Context;
import android.content.SharedPreferences;
public class JsonHandle {
private static String sso;
/**
* 获取登录信息
*/
private static void getSso(Context context) {
SharedPreferences sp = context.getSharedPreferences("login", 0);
sso = sp.getString("sso", "sso");
}
/**
* 获得JSON的字符串数据
*
* @param context
* @param api
* @return
*/
public static String getJsonString(Context context, String api) {
getSso(context);
HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(api);
get.setHeader("Cookie", sso);
try {
HttpResponse response = client.execute(get);
String result = inputStreamToString(
response.getEntity().getContent()).toString();
return result;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
/**
* 把inputStream转化为StringBuilder
*
* @param is
* @return
*/
private static StringBuilder inputStreamToString(InputStream is) {
String line;
StringBuilder total = new StringBuilder();
BufferedReader rd = new BufferedReader(new InputStreamReader(is));
try {
while ((line = rd.readLine()) != null) {
total.append(line);
}
} catch (IOException e) {
e.printStackTrace();
}
return total;
}
}