import java.net.URLEncoder; import java.util.ArrayList; import java.util.Arrays; import com.google.gson.Gson; /** * json字符串 和对象互换 工具类 * 依赖Gson包 * @see com.google.gson.Gson * @author devil * */ public class JsonUtil { /** * 将json字符串转换成对象 * * @param json * @param type * @return */ public static <T> T parse(String json, Class<T> type) { Gson gson = new Gson(); T t = null ; try { t = gson.fromJson(json, type) ; } catch (Exception e) { e.printStackTrace() ; return null ; } return t; } /** * 将json转成数组 * * @param json * @param type * @return */ public static <T> T[] parseArr(String json, Class<T[]> type) { return parse(json, type); } /** * 将json转成集合 * * @param json * @param type * @return */ public static <T> ArrayList<T> parseList(String json, Class<T[]> type) { return new ArrayList<T>(Arrays.asList(parse(json, type))); } /** * 将对象转成json字符串 * * @param o * @return */ public static String format(Object o) { Gson gson = new Gson(); return gson.toJson(o); } /** * 将对象转成json字符串 并使用url编码 * @param o * @return */ public static String formatURLString(Object o) { try { return URLEncoder.encode(format(o), "utf-8"); }catch (Exception e) { return null; } } } HttpPost httpPost = new HttpPost(url); try { List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("username", username)); httpPost.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8)); DefaultHttpClient httpclient = new DefaultHttpClient(); HttpConnectionParams.setConnectionTimeout(httpPost.getParams(), 10000);//设置连接超时 HttpConnectionParams.setSoTimeout(httpPost.getParams(), 10000); //设置请求超时 HttpResponse httpResponse =httpclient.execute(httpPost); if(httpResponse.getStatusLine().getStatusCode()==200){//成功响应了请求 public static String postHttpResponseText(String url, String post) { BufferedReader reader = null; HttpURLConnection conn = null; try { URL httpUrl = new URL(url); HttpURLConnection httpConn = (HttpURLConnection) httpUrl .openConnection(); // //设置连接属性 httpConn.setDoOutput(true);// 使用URL 连接进行输出 httpConn.setDoInput(true);// 使用 URL 连接进行输入 httpConn.setUseCaches(false);// 忽略缓存 httpConn.setRequestMethod("POST");// 设置URL请求方法 String requestString = post; // 设置请求属性 // 获得数据字节数据,请求数据流的编码,必须和下面服务器端处理请求流的编码一致 byte[] requestStringBytes = requestString.getBytes("UTF-8"); httpConn.setRequestProperty("Content-length", "" + requestStringBytes.length); httpConn.setRequestProperty("Content-Type", "application/json"); httpConn.setRequestProperty("Connection", "Keep-Alive");// 维持长连接 httpConn.setRequestProperty("Charset", "UTF-8"); // 建立输出流,并写入数据 OutputStream outputStream = httpConn.getOutputStream(); outputStream.write(requestStringBytes); outputStream.close(); // 获得响应状态 int responseCode = httpConn.getResponseCode(); if (HttpURLConnection.HTTP_OK == responseCode) {// 连接成功 // // 当正确响应时处理数据 StringBuffer buffer = new StringBuffer(); String readLine = null; // 处理响应流,必须与服务器响应流输出的编码一致 reader = new BufferedReader(new InputStreamReader( httpConn.getInputStream(), "UTF-8")); while ((readLine = reader.readLine()) != null) { //buffer.append(readLine).append(" "); buffer.append(readLine); } reader.close(); return buffer.toString(); } } catch (Exception e) { e.printStackTrace(); } finally { if (reader != null) { try { reader.close(); } catch (IOException e1) { } } if (conn != null) { conn.disconnect(); } } return null; }