`
sungang_1120
  • 浏览: 326754 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类

HttpClientUtil封装一

 
阅读更多

 

 

 

 需要添加相应的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工具类 里面包含GET POST 及返回值处理

    HttpClientUtil工具类是Java开发中一个非常实用的工具,它封装了Apache的HttpClient库,用于简化HTTP请求的发送,包括GET和POST方法。这个工具类的主要优点在于它可以帮助开发者快速地构建网络请求,无需深入了解...

    HttpClientUtil工具类发送get和post请求,支持http和https,支持发送文件

    1. GET请求:HttpClientUtil中的GET方法通常会创建一个HttpGet对象,设置请求的URL,并通过HttpClient的execute方法发送请求。响应结果可以通过HttpEntity获取,然后解析成字符串或者特定的对象,例如JSON或XML。 2...

    HttpClientUtil

    1. **连接管理**:HttpClientUtil可以配置连接池,复用已建立的连接,提高性能,避免频繁的TCP三次握手和四次挥手。 2. **线程安全**:为了支持多线程环境,HttpClientUtil通常设计为线程安全的,这意味着多个线程...

    http请求工具类HttpClientUtil,get,post请求(csdn)————程序.pdf

    1. **HttpClientUtil 类结构**: 类中定义了一个静态的日志器 LOGGER,用于记录执行过程中的信息,使用的是 SLF4J 日志框架。此外,创建了一个静态的 `CloseableHttpClient` 实例 `client`,这是 HttpClient 的核心...

    httpclientutil

    2. **HttpClientUtil 类**:通常,开发者会创建一个辅助类 HttpClientUtil,封装 HttpClient 的常用操作,如构建HttpGet、HttpPost对象,设置请求头,处理响应等,以减少代码重复和提高可维护性。 3. **发送 JSON ...

    HttpClientUtil.java

    java httpclient 进行的简单封装,方便大家对httpclient使用。

    httpclientUtil

    1.基于HttpClient-4.4.1封装的一个工具类; 2.基于HttpAsycClient-4.1封装的异步HttpClient工具类; 3.javanet包下面是基于jdk自带的UrlConnection进行封装的。 前2个工具类支持插件式配置Header、插件式配置...

    HttpClient 4.5 封装的工具类 HttpUtil 可用于爬虫和模拟登陆

    基于Apache HttpClient 4.5.2 封装的工具类 HttpUtil 可用于爬虫和模拟登陆。使用新的语法后比3.*版本的速度感觉有提升。使用后注意资源的释放 pom 部分,应该不全,需要用的根据代码的import去找maven资源即可。 ...

    webUtils-安卓对HttpClient的简单封装

    自己对HttpClient的简单封装,目前只封装了post方式的请求

    对于C#(HttpClient)方式网络请求的封装

    描述中的链接指向了一个具体的博客文章,该文章详细解释了如何在C#项目中实现HttpClient的封装。根据上下文,我们可以预期博客会包含以下内容: 1. **HttpClient的基本使用**:介绍HttpClient类的基本概念,包括...

    httpclient.jar包下载

    在Java开发中,HTTP通信是不可或缺的一部分,而Apache HttpClient库正是Java实现HTTP客户端操作的重要工具。本文将深入探讨httpclient.jar包,以及它与code.jar包的关系,帮助开发者更好地理解和使用这两个组件。 ...

    HttpClient接口调用工具类(附带demo)

    HttpClient是Apache基金会开发的一个HTTP客户端库,用于在Java应用程序中执行HTTP请求。它提供了一种高效、灵活且可扩展的方式来发起HTTP请求,并处理响应。在这个工具类中,我们看到包括了Post、Get、Put和Delete四...

    httpUtil httpclient 登陆携带cookie访问下一个连接

    1. **构建POST请求**:首先,你需要创建一个`HttpPost`对象,并设置目标URL为登录页面。然后,使用`NameValuePair`或`BasicNameValuePair`来封装用户名和密码等登录参数,并添加到`List`中,最后通过`setEntity`方法...

    淘淘商城07-工具类

    工具类可能会包含对HttpClient的进一步封装,提供更友好的接口,例如自动处理重定向、编码问题、超时设置等,使得网络请求更加便捷和稳定。 4. **JsonUtil**: JSON(JavaScript Object Notation)是一种轻量级的...

    jtool-httpclient:httpclient上的简单封装

    HttpClientUtil.setRequestHeader("User-Agent", "MyApp/1.0"); HttpClientUtil.setTimeout(5000); // 设置超时时间为5秒 ``` 三、响应处理 jtool-httpclient将HTTP响应封装为一个易于操作的对象,可以方便地...

    httpclient-all-final-4.5.1.jar

    基于httpclient-all-final-4.5.1.jar封装的HttpClientUtil工具类发送http请求

    HttpClient工具类

    在HttpClientUtil中,可以提供一个方法如`httpPostRequest(String url, Map, String&gt; params)`,它接受URL和参数Map,将参数转换为NameValuePair列表,通过`UrlEncodedFormEntity`编码后设置到`HttpPost`对象中,...

    java HttpClient 发送GET请求和带有表单参数的POST请求教程例子

    除了创建`HttpClient`和`HttpPost`对象外,还需要创建一个`List&lt;NameValuePair&gt;`来存储表单参数,然后将其封装到`UrlEncodedFormEntity`中,再设置到`HttpPost`对象上。 ##### 示例代码: ```java public static ...

    JAVA发送HttpClient请求及接收请求完整代码实例

    在实际开发中,为了提高代码的可重用性和易维护性,通常会将这些步骤封装到一个单独的工具类中,如`HttpClientUtil`。这个类可能包含发送GET、POST请求的方法,以及其他辅助功能,如处理超时、重试策略等。 ```java...

Global site tag (gtag.js) - Google Analytics