需要添加相应的jar包
package com.http_request.httpclient; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.methods.PostMethod; /** * @author xiaoli * HttpClient */ public class GetHttpClient { /** * 默认的编码,解决中文乱码 */ public static String defaultEncode = "UTF-8"; /** * 发送Get请求 * @param url 请求路径 * @param paramMap 参数 * @return 响应体 */ public static String getSendGet(String url,Map<String, String> paramMap){ return getSendGet(url, paramMap, defaultEncode); } /** * 发送Get请求 * @param url 请求路径 * @param paramMap 参数 * @param encode 编码 * @return 响应体 */ public static String getSendGet(String url,Map<String, String> paramMap,String encode){ StringBuffer buf = new StringBuffer(); HttpClient client = new HttpClient(); GetMethod getMethod = new GetMethod(url); if(paramMap.size()>0){ NameValuePair[] params = new NameValuePair[paramMap.size()]; Iterator<Entry<String, String>> it = paramMap.entrySet().iterator(); int i = 0; while (it.hasNext()) { Map.Entry<String, String> map = (Map.Entry<String, String>) it.next(); params[i] = new NameValuePair(map.getKey(),map.getValue()); i++; } getMethod.setQueryString(params); // post请求参数用setQueryString } try { client.executeMethod(getMethod); byte[] responseBody = getMethod.getResponseBody(); String content = new String(responseBody,encode); buf.append(content); }catch (Exception e) { e.printStackTrace(); }finally{ getMethod.releaseConnection(); } return buf.toString(); } /** * 发送Post请求 * @param url 请求路径 * @param paramMap 参数 * @return 响应体 */ public static String getSendPost(String url,Map<String, String> paramMap){ return getSendPost(url, paramMap, defaultEncode); } /** * 发送Post请求 * @param url 请求路径 * @param paramMap 参数 * @return 响应体 */ public static String getSendPost(String url,Map<String, String> paramMap,String encode){ StringBuffer buf = new StringBuffer(); HttpClient client = new HttpClient(); PostMethod postMethod = new PostMethod(url); postMethod.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset="+encode); if(paramMap.size()>0){ NameValuePair[] params = new NameValuePair[paramMap.size()]; Iterator<Entry<String, String>> it = paramMap.entrySet().iterator(); int i = 0; while (it.hasNext()) { Map.Entry<String, String> map = (Map.Entry<String, String>) it.next(); params[i] = new NameValuePair(map.getKey(),map.getValue()); i++; } postMethod.setRequestBody(params); // post请求参数用setRequestBody } try { client.executeMethod(postMethod); byte[] responseBody = postMethod.getResponseBody(); String content = new String(responseBody,encode); buf.append(content); }catch (Exception e) { e.printStackTrace(); }finally{ postMethod.releaseConnection(); } return buf.toString(); } }
相关推荐
HttpClientUtil工具类是Java开发中一个非常实用的工具,它封装了Apache的HttpClient库,用于简化HTTP请求的发送,包括GET和POST方法。这个工具类的主要优点在于它可以帮助开发者快速地构建网络请求,无需深入了解...
1. GET请求:HttpClientUtil中的GET方法通常会创建一个HttpGet对象,设置请求的URL,并通过HttpClient的execute方法发送请求。响应结果可以通过HttpEntity获取,然后解析成字符串或者特定的对象,例如JSON或XML。 2...
1. **连接管理**:HttpClientUtil可以配置连接池,复用已建立的连接,提高性能,避免频繁的TCP三次握手和四次挥手。 2. **线程安全**:为了支持多线程环境,HttpClientUtil通常设计为线程安全的,这意味着多个线程...
1. **HttpClientUtil 类结构**: 类中定义了一个静态的日志器 LOGGER,用于记录执行过程中的信息,使用的是 SLF4J 日志框架。此外,创建了一个静态的 `CloseableHttpClient` 实例 `client`,这是 HttpClient 的核心...
2. **HttpClientUtil 类**:通常,开发者会创建一个辅助类 HttpClientUtil,封装 HttpClient 的常用操作,如构建HttpGet、HttpPost对象,设置请求头,处理响应等,以减少代码重复和提高可维护性。 3. **发送 JSON ...
java httpclient 进行的简单封装,方便大家对httpclient使用。
1.基于HttpClient-4.4.1封装的一个工具类; 2.基于HttpAsycClient-4.1封装的异步HttpClient工具类; 3.javanet包下面是基于jdk自带的UrlConnection进行封装的。 前2个工具类支持插件式配置Header、插件式配置...
基于Apache HttpClient 4.5.2 封装的工具类 HttpUtil 可用于爬虫和模拟登陆。使用新的语法后比3.*版本的速度感觉有提升。使用后注意资源的释放 pom 部分,应该不全,需要用的根据代码的import去找maven资源即可。 ...
自己对HttpClient的简单封装,目前只封装了post方式的请求
描述中的链接指向了一个具体的博客文章,该文章详细解释了如何在C#项目中实现HttpClient的封装。根据上下文,我们可以预期博客会包含以下内容: 1. **HttpClient的基本使用**:介绍HttpClient类的基本概念,包括...
在Java开发中,HTTP通信是不可或缺的一部分,而Apache HttpClient库正是Java实现HTTP客户端操作的重要工具。本文将深入探讨httpclient.jar包,以及它与code.jar包的关系,帮助开发者更好地理解和使用这两个组件。 ...
HttpClient是Apache基金会开发的一个HTTP客户端库,用于在Java应用程序中执行HTTP请求。它提供了一种高效、灵活且可扩展的方式来发起HTTP请求,并处理响应。在这个工具类中,我们看到包括了Post、Get、Put和Delete四...
1. **构建POST请求**:首先,你需要创建一个`HttpPost`对象,并设置目标URL为登录页面。然后,使用`NameValuePair`或`BasicNameValuePair`来封装用户名和密码等登录参数,并添加到`List`中,最后通过`setEntity`方法...
工具类可能会包含对HttpClient的进一步封装,提供更友好的接口,例如自动处理重定向、编码问题、超时设置等,使得网络请求更加便捷和稳定。 4. **JsonUtil**: JSON(JavaScript Object Notation)是一种轻量级的...
HttpClientUtil.setRequestHeader("User-Agent", "MyApp/1.0"); HttpClientUtil.setTimeout(5000); // 设置超时时间为5秒 ``` 三、响应处理 jtool-httpclient将HTTP响应封装为一个易于操作的对象,可以方便地...
基于httpclient-all-final-4.5.1.jar封装的HttpClientUtil工具类发送http请求
在HttpClientUtil中,可以提供一个方法如`httpPostRequest(String url, Map, String> params)`,它接受URL和参数Map,将参数转换为NameValuePair列表,通过`UrlEncodedFormEntity`编码后设置到`HttpPost`对象中,...
除了创建`HttpClient`和`HttpPost`对象外,还需要创建一个`List<NameValuePair>`来存储表单参数,然后将其封装到`UrlEncodedFormEntity`中,再设置到`HttpPost`对象上。 ##### 示例代码: ```java public static ...
在实际开发中,为了提高代码的可重用性和易维护性,通常会将这些步骤封装到一个单独的工具类中,如`HttpClientUtil`。这个类可能包含发送GET、POST请求的方法,以及其他辅助功能,如处理超时、重试策略等。 ```java...