封装后返回Map、实体、List中含有实体, 等。
import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.apache.commons.httpclient.params.HttpMethodParams; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.protocol.HTTP; import org.apache.http.util.EntityUtils; /** * @ClassName: HttpClientUtil * @date 2015年10月14日 下午4:32:36 * @Description: */ public class HttpClientUtil { public static JSONArray getJsonArrayFromUrl(String urlStr, Map<String, String> params){ String result = getStrFromUrl(urlStr,params); return JSONArray.fromObject(result ) ; } public static Map<String,Object> getMapFromUrl(String urlStr, Map<String, String> params){ String result = getStrFromUrl(urlStr,params); return JSONObject.fromObject( result); } /** * 模拟url访问 从特定的url中获取json * @param urlStr * @param params * @return json object ,or null if failed * 参数经过封装后传过来 ,提交为 post请求 */ public static String getStrFromUrl(String urlStr, Map<String, String> params) { HttpClient httpClient = new DefaultHttpClient(); httpClient.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "GBK"); HttpPost httpPost = new HttpPost(urlStr); String content="" ; try { if (params != null) { Iterator<String> keys = params.keySet().iterator(); List<NameValuePair> nvps = new ArrayList<NameValuePair>(); while (keys.hasNext()) { String key = keys.next(); nvps.add(new BasicNameValuePair(key, params.get(key))); } httpPost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8)); } HttpResponse response = httpClient.execute(httpPost); HttpEntity entity = response.getEntity(); content = EntityUtils.toString(entity , "utf-8"); } catch (Exception e) { e.printStackTrace(); } return content; } /** * 查询list<实体> 数据 * @Title getListFromUrl * @param url * @param params * @param clazz * @return * @return List<T> * @throws * */ public static <T extends Object> List<T> getListFromUrl( String url, Map<String, String> params , Class<T> clazz ) { String result = getStrFromUrl(url,params); if(result==null || "".equals( result)){ return null ; } JSONArray jsonarray = JSONArray.fromObject(result ); List<T> list = (List<T>)JSONArray.toList(jsonarray, clazz); return list; } /** * 得到对象从实体里面 * @Title getEntityFromUrl * @param url * @param params * @param clazz * @return * @return T * @Description * @throws * */ public static <T extends Object> T getEntityFromUrl( String url, Map<String, String> params , Class<T> clazz ) { String result = getStrFromUrl(url,params); if(result==null || "".equals( result)){ return null ; } JSONObject jb = JSONObject.fromObject(result); T t = (T) JSONObject.toBean( jb, clazz ) ; return t ; } public static void main(String[] args) { // Map map = new HashMap(); // map.put("result", "1"); // map.put("status", "2"); // NetworkdriveFile net = new NetworkdriveFile(); // net.setChapter_id("1"); // net.setChapter_name("name");; // net.setCom_name("com Name"); // // NetworkdriveFile net2 = new NetworkdriveFile(); // net2.setChapter_id("1"); // net2.setChapter_name("name");; // net2.setCom_name("com Name"); // List list = new ArrayList(); // list.add( net); // list.add(net2); // map.put("list", list); // // // String str = JSONObject.fromObject(map ).toString(); // System.out.println( map ); // HashMap map3 = reflect(JSONObject.fromObject(str) ) ; // System.out.println( map3.get("result" )); // List list3 = reflect(JSONArray.fromObject( map3.get("list"))); // NetworkdriveFile ndf = (NetworkdriveFile) JSONObject.toBean( JSONObject.fromObject(list3.get(0) ) , NetworkdriveFile.class ); // System.out.println( list3.get(0) ); // JSONObject map5 = JSONObject.fromObject(str ) ; // List<NetworkdriveFile> list5 = JSONArray.toList(JSONArray.fromObject(map5.get("list") ), NetworkdriveFile.class); // System.out.println( list5 ); // System.out.println( map5.get("result")); // // List list2 = (List) map1.get("list"); // JSONArray.toList(list2, NetworkdriveFile.class) ; // // NetworkdriveFile net3 = (NetworkdriveFile)JSONObject.toBean((JSONObject)list2.get(0) ) ; System.out.println( "22222222222"); // List<NetworkdriveFile> list2 = HttpClientUtil.getListFromUrl2( NetworkdriveFile.class ); // System.out.println( list2 ); } }