`

JAVA发送HttpClient请求

    博客分类:
  • java
 
阅读更多
//测试例子:
public static JSONObject test() {
		String urlstr = "http://xxx:8080/test/test.do";
		String Authorization = "test:test";

		JSONObject result = HttpRequestUtils.httpPost(urlstr, null, Authorization);
                return result;
               }
	





public class HttpRequestUtils {
	protected final Logger logger = LoggerFactory.getLogger(HttpRequestUtils.class); // 日志记录

	// 表示请求器是否已经做了初始化工作
	private static boolean hasInit = false;

	// 连接超时时间,默认10秒
	private static int socketTimeout = 10000;

	// 传输超时时间,默认30秒
	private static int connectTimeout = 30000;

	// 请求器的配置
	private static RequestConfig requestConfig;

	public static void init() {
		if (!hasInit) {
			requestConfig = RequestConfig.custom().setSocketTimeout(socketTimeout).setConnectTimeout(connectTimeout).build();
		}
	}

	public static JSONObject httpPost(String url, JSONObject param, String Authorization) {
		init();

		// post请求返回结果
		CloseableHttpClient httpClient = HttpClients.createDefault();
		JSONObject result = null;
		HttpPost httpPost = new HttpPost();
		if (param != null) {
			// 解决中文乱码问题
			StringEntity entity = new StringEntity(param.toString(), "UTF-8");
			entity.setContentEncoding("UTF-8");
			entity.setContentType("application/json");
			httpPost.setEntity(entity);

		}
		// 增加http basic authenticate认证
		if (!Tools.isEmpty(Authorization)) {
			String encoding;
			try {
				encoding = Base64.encode(Authorization.getBytes("UTF-8"));
				httpPost.setHeader("Authorization", String.format("Basic %s", encoding));
			} catch (UnsupportedEncodingException e) {
				e.printStackTrace();
			}
		}
		// 设置请求器的配置
		httpPost.setConfig(requestConfig);

		try {
			HttpResponse response = httpClient.execute(httpPost);

			// 请求发送成功,得到响应
			int responseCode = response.getStatusLine().getStatusCode();
			if (response.getStatusLine().getStatusCode() == 200) {
				String str = EntityUtils.toString(response.getEntity(),"UTF-8");
				try {
					result = new JSONObject(str);
				} catch (org.json.JSONException e) {
					result = new JSONObject();
					result.put("str", str);
				}
			} else {
				result = new JSONObject();
				result.put("responseCode", responseCode);
			}
		} catch (ClientProtocolException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				httpPost.releaseConnection();
				httpPost.abort();
				httpClient.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		return result;
	}

	public static JSONObject httpGet(String url, String Authorization) {
		init();

		// get请求返回结果
		JSONObject result = null;
		CloseableHttpClient httpClient = HttpClients.createDefault();

		// 发送get请求
		HttpGet httpGet = new HttpGet(url);
		// 增加http basic authenticate认证
		if (!Tools.isEmpty(Authorization)) {
			String encoding;
			try {
				encoding = Base64.encode(Authorization.getBytes("UTF-8"));
				httpGet.setHeader("Authorization", String.format("Basic %s", encoding));
			} catch (UnsupportedEncodingException e) {
				e.printStackTrace();
			}
		}
		// 设置请求器的配置
		httpGet.setConfig(requestConfig);
		try {
			HttpResponse response = httpClient.execute(httpGet);
			// 请求发送成功,得到响应
			int responseCode = response.getStatusLine().getStatusCode();
			if (responseCode == 200) {
				String str = EntityUtils.toString(response.getEntity(),"UTF-8");
				try {
					result = new JSONObject(str);
				} catch (org.json.JSONException e) {
					result = new JSONObject();
					result.put("responseCode", responseCode);
				}
			}
		} catch (ClientProtocolException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				httpGet.releaseConnection();
				httpGet.abort();
				httpClient.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}

		return result;
	}
}

 

分享到:
评论

相关推荐

    JAVA发送HttpClient请求及接收请求结果过程

    ### JAVA发送HttpClient请求及接收请求结果过程 #### 一、概述 在Java开发过程中,经常需要与外部系统进行HTTP通信,比如发送POST或GET请求来获取数据或提交数据。Apache HttpClient是一个强大的HTTP客户端库,提供...

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

    总结起来,使用Java的HttpClient发送HTTP请求涉及以下关键步骤: 1. 创建HttpClient实例。 2. 构建HttpGet或HttpPost对象。 3. 执行请求并获取响应。 4. 处理响应状态码和内容。 5. 关闭资源。 在实际项目中,我们...

    java发送HttpClient请求及接收请求结果过程的简单实例

    在Java编程中,Apache HttpClient库是一个非常常用的工具,用于发送HTTP请求并接收响应。下面将详细解释如何使用HttpClient发送请求以及处理返回结果的过程。 首先,我们需要导入必要的依赖库,这通常包括Apache ...

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

    ### Java HttpClient 发送GET请求和带有表单参数的POST请求详解 #### 一、概述 在Java编程中,处理HTTP请求是一项常见的需求,特别是在与Web服务进行交互时。Apache HttpClient库提供了一种强大的方法来执行HTTP...

    (完整版)JAVA利用HttpClient进行POST请求(HTTPS).doc

    在本文中,我们将详细介绍如何使用JAVA的HttpClient库来发送POST请求,以便与HTTPS服务器进行交互。首先,我们需要继承DefaultHttpClient类,以便自定义HttpClient的行为。然后,我们需要使用X509TrustManager来忽略...

    java使用HttpClient发送http请求

    在Java编程中,HttpClient是一个非常重要的工具库,用于发送HTTP请求和处理响应。这个工具广泛应用于各种场景,如数据抓取、API交互等。本文将深入讲解如何使用HttpClient来发送HTTP请求,以及相关的源码分析。 ...

    Java 使用HttpClient保持SESSION状态

    在Java编程中,HttpClient是一个强大的库,用于执行HTTP请求,特别是在需要进行复杂的HTTP操作或大量HTTP请求时。在处理Web应用程序时,有时我们需要保持用户的登录状态,即SESSION状态。这通常涉及到Cookie管理,...

    java实现HttpClient异步请求资源的方法

    本篇文章将详细介绍如何使用Java的HttpClient实现异步请求资源。 首先,让我们了解什么是异步请求。在同步请求中,调用一个API或发送一个HTTP请求后,程序会等待响应返回,然后继续执行后续代码。而异步请求则不同...

    java使用HttpClient通过url下载文件到本地

    在Java编程环境中,HttpClient库是Apache HTTP Components项目的一部分,它为开发者提供了强大的HTTP客户端功能,可以用来发送HTTP请求并接收响应。在这个特定的场景中,我们利用HttpClient来从指定的URL下载文件到...

    java 发送https 请求 证书

    当你需要在Java程序中发送HTTPS请求时,可能会遇到证书相关的问题,特别是当服务器使用自签名证书或者非标准CA签发的证书时。本文将详细讲解如何在Java中处理这类问题,以及如何使用httpUtils工具进行HTTPS请求。 ...

    java使用httpclient发送post请求示例

    Java 使用 HttpClient 发送 POST 请求是网络编程中常见的任务,尤其在与 Web 服务进行交互时。Apache HttpClient 是一个强大的库,允许 Java 开发者轻松地执行 HTTP 请求。在这个示例中,我们将深入探讨如何使用 ...

    java 中HttpClient传输xml字符串实例详解

    至此,我们已经成功地使用Java的HttpClient库将一个对象转换为XML字符串,并以二进制流的方式发送到了服务器。这个过程中涉及的关键技术包括对象到XML的转换(JAXB)、流操作(ByteArrayOutputStream和...

    httpclient发送post请求

    总结,HTTPClient是Java进行HTTP通信的强大工具,尤其在发送POST请求时,它提供了丰富的功能和灵活性。通过理解上述步骤和项目结构,你可以有效地构建和发送POST请求,与远程服务器进行交互。对于"post-demo"项目,...

    JAVA 发送http请求工具类

    在Java中,我们可以使用`java.net.HttpURLConnection`或`org.apache.http.client.HttpClient`(Apache HttpClient库)来发送HTTP请求。这两个方法各有优劣:`HttpURLConnection`是Java内置的API,更轻量级,但功能...

    HttpClient发送http请求需要的jar包

    在Java应用中,如果你需要发送HTTP请求,HttpClient是一个非常实用的选择。本篇文章将详细介绍使用HttpClient库发送HTTP请求所需的基本知识。 首先,我们来关注"org.apache.http"这个包。这是HttpClient的核心包,...

    HttpClient发送http请求(post+get)需要的jar包+内符java代码案例+注解详解

    以下是一个使用HttpClient发送GET请求的Java代码示例: ```java import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient;...

    JAVA利用HttpClient进行HTTPS接口调用

    在Java编程中,HttpClient是一个非常重要的库,常用于执行HTTP请求。当涉及到HTTPS接口调用时,HttpClient可以处理加密通信,确保数据传输的安全性。在这个主题中,我们将深入探讨如何在Java中使用HttpClient来实现...

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

    HttpClient是Apache基金会开发的一个HTTP客户端库,用于在Java应用程序中执行HTTP请求。它允许开发者模拟GET和POST等HTTP请求,并可以方便地发送JSON等数据作为请求参数。在本文中,我们将深入探讨如何使用...

Global site tag (gtag.js) - Google Analytics