封装后返回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使用教程 #### HttpClient概述与重要性 在当今互联网时代,HTTP协议无疑是网络通信中最常用且至关重要的协议之一。随着技术的发展,越来越多的Java应用程序需要直接通过HTTP协议访问网络资源。尽管...
在提供的压缩包文件中,"第一个版本.rar"和"第二个版本.rar"可能包含了不同的HttpClient使用示例或者不同版本的代码。你可以解压并查看这些文件,以便更深入地理解和学习HttpClient的具体用法。每个版本可能包含不同...
在Java项目中使用HttpClient时,为了确保功能的完整性和正确性,通常需要引入一系列的jar包。这些jar包包含了HttpClient的核心组件、依赖库和其他必要的工具,它们共同构成了HttpClient的运行环境。 以下是一些关键...
本篇文章将详细讲解HttpClient的使用方法,包括如何搭建环境、所需的jar包、基本应用以及实例演示,旨在帮助初级学员快速掌握HttpClient的基础操作。 一、环境搭建 在使用HttpClient之前,首先需要在项目中引入...
### HttpClient 使用指南知识点详解 #### 一、概述与基本概念 **1.1 请求执行** - **1.1.1 HTTP请求**: 在客户端发起HTTP请求时,需要构造一个`HttpRequest`对象,它包含了请求方法(如GET、POST)、请求URL等...
HttpClient是个很不错的开源框架(org.appache.http),封装了访问http的请求头,参数,内容体,响应等等,使用起来更方面更强大。 HttpURLConnection是java的标准类,可以实现简单的基于URL请求、响应功能,什么都...
本教程将基于标题"HTTPClient简单使用"和提供的文件`HttpService`、`HttpClient`来阐述HTTPClient的基本使用方法。 1. **HTTPClient简介** HTTPClient是Apache的 HttpClient库,它为Java开发者提供了全面的HTTP...
2. **请求构造**:你可以使用`GetMethod`、`PostMethod`等类来创建HTTP请求。例如,`GetMethod`用于GET请求,而`PostMethod`用于POST请求。这些类允许设置请求头、URL、POST数据等。 3. **参数处理**:`...
二、HttpClient的使用步骤 1. **创建HttpClient实例**:首先,需要创建一个HttpClient实例,可以设置连接超时、重试策略等参数。 2. **选择HttpMethod**:根据实际需求选择合适的HttpMethod,比如使用GetMethod或...
2. **请求和响应模型**:HttpClient使用HttpRequest和HttpResponse对象封装HTTP请求和响应,便于处理请求头、请求体和响应头、响应体。 3. **身份验证和安全**:HttpClient支持多种身份验证机制,包括基本认证、...
2. **HttpClient的基本使用**: 使用HttpClient首先需要导入相关的依赖库,如Apache HttpClient的`httpclient`和`httpcore`模块。然后,创建一个HttpClient实例,比如使用`HttpClients.createDefault()`,这将提供...
为了确保高效的资源管理,建议使用`HttpClientFactory`,尤其是对于频繁创建和销毁`HttpClient`的情况,这可以避免过多的TCP连接打开和关闭。 ```csharp using System.Net.Http; using Microsoft.Extensions....
本篇文章将详细介绍HTTPClient 4.0的使用方法,包括其核心概念、基本操作和示例代码。 一、核心概念 1. HttpClient实例:HttpClient对象是执行HTTP请求的核心,负责建立连接、发送请求和接收响应。通过`...
2. **创建HttpClient实例**: 要开始使用HttpClient,你需要创建一个`CloseableHttpClient`对象。例如: ```java CloseableHttpClient httpClient = HttpClients.createDefault(); ``` 3. **构建HttpPost请求**: ...
2. **异步请求**:使用异步方法发送HTTP请求,允许其他任务在等待响应时继续执行。异步请求提高了程序的响应性和效率,尤其在UI线程中,可以避免阻塞用户界面。 3. **返回数据格式多样**: - **字符串**:通常用于...
然而,由于这个例程使用了HttpClient,我们需要了解其工作原理和如何在Android环境中正确使用。 7. **注意事项**: - 异步处理:网络请求不应在主线程中进行,以免阻塞用户界面,应使用异步任务或Android的...
2. **创建HttpClient对象**:HttpClient是所有HTTP操作的基础。你可以使用`HttpClientBuilder`或`HttpClients`类来创建一个HttpClient实例。例如: ```java CloseableHttpClient httpClient = HttpClients.create...
下面我们将详细探讨如何在Java中使用HttpClient来实现这一目标。 首先,我们需要导入必要的Apache HttpClient库,通常包含以下依赖: ```xml <groupId>org.apache.httpcomponents <artifactId>httpclient ...
在本示例中,我们将关注“httpclient使用post方法上传多个图片和其他参数的demo源码”,这是一个涉及到文件上传和参数传递的重要场景。 在Web开发中,POST方法常用于向服务器提交数据,比如表单数据或文件。...