//测试例子: 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开发过程中,经常需要与外部系统进行HTTP通信,比如发送POST或GET请求来获取数据或提交数据。Apache HttpClient是一个强大的HTTP客户端库,提供...
总结起来,使用Java的HttpClient发送HTTP请求涉及以下关键步骤: 1. 创建HttpClient实例。 2. 构建HttpGet或HttpPost对象。 3. 执行请求并获取响应。 4. 处理响应状态码和内容。 5. 关闭资源。 在实际项目中,我们...
### Java HttpClient 发送GET请求和带有表单参数的POST请求详解 #### 一、概述 在Java编程中,处理HTTP请求是一项常见的需求,特别是在与Web服务进行交互时。Apache HttpClient库提供了一种强大的方法来执行HTTP...
在本文中,我们将详细介绍如何使用JAVA的HttpClient库来发送POST请求,以便与HTTPS服务器进行交互。首先,我们需要继承DefaultHttpClient类,以便自定义HttpClient的行为。然后,我们需要使用X509TrustManager来忽略...
在java后端发送HTTPClient请求工具类
在Java编程中,HttpClient是一个非常重要的工具库,用于发送HTTP请求和处理响应。这个工具广泛应用于各种场景,如数据抓取、API交互等。本文将深入讲解如何使用HttpClient来发送HTTP请求,以及相关的源码分析。 ...
在Java编程中,Apache HttpClient库是一个非常常用的工具,用于发送HTTP请求并接收响应。下面将详细解释如何使用HttpClient发送请求以及处理返回结果的过程。 首先,我们需要导入必要的依赖库,这通常包括Apache ...
在Java编程中,HttpClient是一个强大的库,用于执行HTTP请求,特别是在需要进行复杂的HTTP操作或大量HTTP请求时。在处理Web应用程序时,有时我们需要保持用户的登录状态,即SESSION状态。这通常涉及到Cookie管理,...
本篇文章将详细介绍如何使用Java的HttpClient实现异步请求资源。 首先,让我们了解什么是异步请求。在同步请求中,调用一个API或发送一个HTTP请求后,程序会等待响应返回,然后继续执行后续代码。而异步请求则不同...
在Java编程环境中,HttpClient库是Apache HTTP Components项目的一部分,它为开发者提供了强大的HTTP客户端功能,可以用来发送HTTP请求并接收响应。在这个特定的场景中,我们利用HttpClient来从指定的URL下载文件到...
Java 使用 HttpClient 发送 POST 请求是网络编程中常见的任务,尤其在与 Web 服务进行交互时。Apache HttpClient 是一个强大的库,允许 Java 开发者轻松地执行 HTTP 请求。在这个示例中,我们将深入探讨如何使用 ...
当你需要在Java程序中发送HTTPS请求时,可能会遇到证书相关的问题,特别是当服务器使用自签名证书或者非标准CA签发的证书时。本文将详细讲解如何在Java中处理这类问题,以及如何使用httpUtils工具进行HTTPS请求。 ...
至此,我们已经成功地使用Java的HttpClient库将一个对象转换为XML字符串,并以二进制流的方式发送到了服务器。这个过程中涉及的关键技术包括对象到XML的转换(JAXB)、流操作(ByteArrayOutputStream和...
总结,HTTPClient是Java进行HTTP通信的强大工具,尤其在发送POST请求时,它提供了丰富的功能和灵活性。通过理解上述步骤和项目结构,你可以有效地构建和发送POST请求,与远程服务器进行交互。对于"post-demo"项目,...
在Java中,我们可以使用`java.net.HttpURLConnection`或`org.apache.http.client.HttpClient`(Apache HttpClient库)来发送HTTP请求。这两个方法各有优劣:`HttpURLConnection`是Java内置的API,更轻量级,但功能...
在Java应用中,如果你需要发送HTTP请求,HttpClient是一个非常实用的选择。本篇文章将详细介绍使用HttpClient库发送HTTP请求所需的基本知识。 首先,我们来关注"org.apache.http"这个包。这是HttpClient的核心包,...
以下是一个使用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是一个非常重要的库,常用于执行HTTP请求。当涉及到HTTPS接口调用时,HttpClient可以处理加密通信,确保数据传输的安全性。在这个主题中,我们将深入探讨如何在Java中使用HttpClient来实现...