封装后返回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 ); } }
相关推荐
HttpClient是个很不错的开源框架(org.appache.http),封装了访问http的请求头,参数,内容体,响应等等,使用起来更方面更强大。 HttpURLConnection是java的标准类,可以实现简单的基于URL请求、响应功能,什么都...
HttpClient汇总工具类 HttpClient汇总工具类HttpClient汇总工具类HttpClient汇总工具类
使用HttpClient发送请求、接收响应很简单,一般需要如下几步即可。 1. 创建HttpClient对象。 2. 创建请求方法的实例,并指定请求URL。如果需要发送GET请求,创建HttpGet对象;如果需要发送POST请求,创建...
httpClient的get请求方式2 * @return * @throws Exception */ public static String doGet(String url, String charset) throws Exception { /* * 使用 GetMethod 来访问一个 URL 对应的网页,实现步骤: 1:...
2.commons-logging-1.2.jar 3.fluent-hc-4.5.jar 4.httpclient-4.5.jar 5.httpclient-cache-4.5.jar 6.httpclient-win-4.5.jar 7.httpcore-4.4.1.jar 8.httpmime-4.5.jar 9.jna-4.1.0.jar 10.jna-platform-4.1.0.jar
2.基于HttpAsycClient-4.1封装的异步HttpClient工具类; 3.javanet包下面是基于jdk自带的UrlConnection进行封装的。 前2个工具类支持插件式配置Header、插件式配置httpclient对象,这样就可以方便地自定义header信息...
2. 什么是HttpClient不能做的 HttpClient 不是一个浏览器。它是一个客户端的HTTP通信实现库。HttpClient的目标是发送和接收HTTP报文。HttpClient不会去缓存内容,执行 嵌入在HTML页面中的javascript代码,猜测内容...
httpclient-4.5.jar
httpclient4.3的二次封装,解决了代理问题、多线程问题、SSL问题、通用的get、post请求
HttpClientUtil2-发送json返回json测试通过.java
使用三种方案实现网页爬虫: 1、httpclient 2、jsoup 3、httpclient+jsoup
通过httpclient post去获取,response返回码是302,返回的code放在header的Location中。 请求的时候client_id,response_type,redirect_uri,state拼接在url后面,account和password放在body表单(x-...
2、使用HttpClient发送POST请求:和之前的GET类似 3、使用异步HttpClient发送请求,可以在github上找一些别人已经写好的代码,封装度比较高,直接拿来用。 4、多线程下载:使用RandomAccessFile输出流写 5、多线程...
httpclient的jar包,下载后,放到WEB-INF目录lib里面就行了
1.高效简单池化的...2.支持基于SpringBoot 2.1.x的自动装载模块,引用依赖即可使用。 3.公司几十个项目都使用该工具类访问第三方的Http/Https+json协议接口。 4.经过上市公司多个项目的考验、简单实用、可靠。
2017-12-20 09:28 2,348,172 httpclient-4.5.2-javadoc.jar 2017-01-08 11:15 707,899 httpclient-4.5.2-sources.jar 2016-12-12 14:46 736,658 httpclient-4.5.2.jar 2018-03-28 17:13 747,794 httpclient-4.5.3....
简单来说HttpClient就是模拟post或get的. 简化HTTP客户端与服务器进行各种通讯的开源东东 最新是4.0-alpha2,内含jar包及例子.
实现了Java版的Promise 和 HttpClient。HttpClient 支持同步和异步两种方式,也支持多种不同实现。目前有Netty 和 Apache Compoenet两种实现。本次上传移除了Netty实现。主要解决生产环境中同步httpclient造成的IO...
一般而言,使用HttpClient均需导入httpclient.jar与httpclient-core.jar2个包。 1.4使用方法与步骤 开发环境:需要 使用HttpClient发送请求、接收响应很简单,一般需要如下几步即可。 1.创建HttpClient对象。 ...