`

HttpClient请求调用封装

 
阅读更多

1. maven依赖包下载

<!-- httpclient -->
	 <dependency>
	   <groupId>org.apache.httpcomponents</groupId>
	   <artifactId>httpclient</artifactId>
	   <version>4.2.1</version>
     </dependency>

 

2. HttpClientUtil.java

package com.snail.common.util;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;

/**
 * HttpClient调用工具类
 * 
 * @author penghuaiyi
 * @date 2014-04-04
 */
public class HttpClientUtil {

	/**
	 * 发送GET请求
	 * @param uri
	 * @return
	 */
	public static String sendGet(String uri) {
		String responseBody = null;
		HttpClient httpClient = new DefaultHttpClient();
		try {
			HttpGet httpGet = new HttpGet(uri);
			System.out.println("executing request " + httpGet.getURI());
			// Create a response handler
			ResponseHandler<String> responseHandler = new BasicResponseHandler();
			responseBody = httpClient.execute(httpGet, responseHandler);
			System.out.println("----------------------------------------");
			System.out.println(responseBody);
			System.out.println("----------------------------------------");
		} catch (ClientProtocolException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			httpClient.getConnectionManager().shutdown();
		}
		return responseBody;
	}
	
	/**
	 * 发送POST请求
	 * @param uri
	 * @param paramMap 请求参数
	 * @return
	 */
	public static String sendPost(String uri, Map<String, String> paramMap) {
		return sendPost(uri, paramMap, null);
	}

	/**
	 * 发送POST请求
	 * @param uri
	 * @param paramMap 请求参数
	 * @param charset 参数编码
	 * @return
	 */
	public static String sendPost(String uri, Map<String, String> paramMap, String charset) {
		String responseBody = null;
		HttpClient httpClient = new DefaultHttpClient();
		try {
			HttpPost httpPost = new HttpPost(uri);
			System.out.println("executing request " + httpPost.getURI());
			if (paramMap != null) {
				List<NameValuePair> nvps = new ArrayList<NameValuePair>(
						paramMap.size());
				for (Map.Entry<String, String> entry : paramMap.entrySet()) {
					NameValuePair nvp = new BasicNameValuePair(entry.getKey(),
							entry.getValue());
					nvps.add(nvp);
				}
				if(charset!=null){
					httpPost.setEntity(new UrlEncodedFormEntity(nvps,charset));
				}else{
					httpPost.setEntity(new UrlEncodedFormEntity(nvps));
				}
			}
			// Create a response handler
			ResponseHandler<String> responseHandler = new BasicResponseHandler();
			responseBody = httpClient.execute(httpPost, responseHandler);
			System.out.println("----------------------------------------");
			System.out.println(responseBody);
			System.out.println("----------------------------------------");
		} catch (ClientProtocolException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			httpClient.getConnectionManager().shutdown();
		}
		return responseBody;

	}

}

 

分享到:
评论

相关推荐

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

    - **UseCase.cs**:这可能是示例代码中具体使用网络请求的地方,展示了如何调用封装好的网络工具类。 - **Util.cs**:通用工具类,可能包含一些辅助函数,如日志记录、数据转换等,这些可能在处理网络请求时用到。 ...

    HTTPClient 的一个封装

    文件名为httpClient的压缩包很可能包含了封装HttpClient的相关代码,可能包括配置类、请求执行类、异常处理类等。解压并研究这些文件,可以帮助我们理解具体是如何进行封装的,也可以为我们的项目提供参考和学习的...

    WebApi系列-通过HttpClient来调用WebApi接口.doc

    ### WebApi系列-通过HttpClient来调用WebApi接口 #### 一、概述 在现代Web开发中,Web API已经成为一种非常流行的模式,用于提供服务端与客户端之间的数据交互。随着.NET Framework以及.NET Core的发展,微软提供...

    httpclient4.3 封装工具类

    这有助于提高整体的请求处理速度,尤其在大数据爬取或批量服务调用时。 3. **SSL问题**:在处理HTTPS请求时,HttpClient需要处理SSL证书和信任管理。封装工具类可能包含了SSLContext的配置,以处理自签名证书或者不...

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

    通过这个工具类,开发者可以方便地调用静态方法进行HTTP请求,而不必关心底层实现的细节。 总结起来,使用Java的HttpClient发送HTTP请求涉及以下关键步骤: 1. 创建HttpClient实例。 2. 构建HttpGet或HttpPost对象...

    HttpClient重新封装的HttpClient类

    本篇文章将深入探讨重新封装的HttpClient类,以及如何利用它进行高效且灵活的网络请求。 首先,我们来看一下`HttpClient`类的基本用法。原生的`HttpClient`类提供了发送GET、POST等不同HTTP方法请求的能力。例如,...

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

    总之,这个HttpClient工具类提供了一个简洁易用的接口,帮助开发者快速、方便地进行HTTP请求,无论是在进行API调用还是数据交互,都能大大简化工作流程。通过这个工具类,你无需深入了解HttpClient的底层实现,只需...

    webservice调用实例,通过HttpClient调用

    本示例将深入探讨如何使用Apache HttpClient库在Java环境中调用Web服务,特别是通过Maven构建项目的方式进行。HttpClient是一个强大的HTTP客户端编程工具包,能够支持多种HTTP协议特性,使得Web服务调用变得更加灵活...

    如何在WPF应用程序中通过HttpClient调用Web API

    本教程将深入探讨如何利用HttpClient类在WPF应用中异步调用Web API,确保不阻塞主线程,提供流畅的用户体验。 HttpClient是一个强大的工具,用于发送HTTP请求并接收响应。在WPF应用中,我们可以使用异步编程技术,...

    httpClient调用javaeye API验证用户

    在这个场景中,我们使用HttpClient来调用JavaEye API来验证用户。JavaEye可能是一个提供用户认证服务的平台,而API则提供了验证用户身份的功能。 以下是一个关于如何使用HttpClient调用JavaEye API的基本步骤: 1....

    httpclient get/post请求工具类(map参数封装)

    httpclient get/post请求工具类(map参数封装),方便调用

    httpclient简化封装Starget.Http

    本篇文章将详细讲解基于HttpClient的简化封装Starget.Http,以及如何利用它更方便地调用WebAPI接口,并通过Attribute控制模型序列化的位置。 首先,HttpClient虽然强大且功能齐全,但其基础使用往往需要编写大量的...

    httpclient4.3 封装工具类.zip

    综上所述,这个“httpclient4.3 封装工具类.zip”应该包含了一些实用的类,将HttpClient的基本操作进行了封装,方便开发者在处理HTTP请求时直接调用,提高开发效率和代码可维护性。使用这样的工具类,开发者可以更...

    httpclient4 封装

    使用完HttpClient后,记得调用`close`方法关闭连接管理器,以避免资源泄露。 封装HttpClient到你的项目中,可以创建一个工具类,提供统一的HTTP请求方法,将所有配置和异常处理集中管理,使得代码更简洁,易于维护...

    C# http Get/POST请求封装类

    通过这样的封装,你可以方便地在其他类和方法中调用`GetAsync`和`PostAsync`,以处理Web服务的交互。 在实际应用中,你可能还需要添加错误处理、超时设置、重试策略、自定义头部信息等高级功能,以适应不同的应用...

    httpclient发送post请求

    在实际项目中,为了提高代码的可复用性和可维护性,通常会将这些步骤封装到一个工具类中,例如`HttpClientUtil`,提供静态方法供其他类调用,从而简化客户端代码。 总结,HTTPClient是Java进行HTTP通信的强大工具,...

    httpClient请求

    `HttpClientUtils`通常是封装了HttpClient核心操作的工具类,旨在简化HTTP请求的发起和管理,提供一个易于使用的API。`RestClient`可能是一个更高级别的抽象,专门针对RESTful API设计,利用HttpClient来实现对REST...

    HttpClient模拟get,post请求并发送请求参数(json等)

    在实际项目中,我们通常会封装一个HttpClientUtil工具类,以简化请求的创建和执行过程。 例如,一个简单的HttpClientUtil工具类可能包含如下方法: ```java public class HttpClientUtil { public static ...

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

    接下来,调用`execute()`方法来执行请求,最后解析返回的响应。 ##### 示例代码: ```java public static String sendGetRequest(String requestUrl) { long responseLength = 0; String responseContent = null...

Global site tag (gtag.js) - Google Analytics