package com.util;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
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.HttpPost;
import org.apache.http.client.utils.HttpClientUtils;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
/*
* 利用HttpClient进行post请求的工具类
*/
@SuppressWarnings("deprecation")
public class ApacheHttpClientUtil {
/**
* HttpClient post 请求的方法
* @param url 请求地址
* @param data 推送字符串
* @return String 返回值
*/
public static String HttpPostSting(String url, String data) {
String returnValue = "这是默认返回值,接口调用失败";
HttpClient httpClient = null;
ResponseHandler<String> responseHandler = new BasicResponseHandler();
try {
// 第一步:创建HttpClient对象
httpClient = HttpClients.createDefault();
// 第二步:创建httpPost对象
HttpPost httpPost = new HttpPost(url);
// 第三步:给httpPost设置参数
StringEntity requestEntity = new StringEntity(data, "utf-8");
requestEntity.setContentEncoding("UTF-8");
httpPost.setHeader("Content-type", "application/x-www-form-urlencoded");
httpPost.setEntity(requestEntity);
// 第四步:发送HttpPost请求,获取返回值
returnValue = httpClient.execute(httpPost, responseHandler); // 调接口获取返回值时,必须用此方法
// CloseableHttpResponse httpResonse = httpClient.execute(httpPost);
// int statusCode = httpResonse.getStatusLine().getStatusCode();
// if(statusCode!=200)
// {
// System.out.println("请求发送失败,失败的返回参数为:"+httpResonse.getStatusLine());
// returnValue = httpResonse.getStatusLine().toString();
// }
//
} catch (Exception e) {
e.printStackTrace();
}
finally {
HttpClientUtils.closeQuietly(httpClient);
}
// 第五步:处理返回值
return returnValue;
}
/**
* HttpClient post 请求的方法
* @param url 请求地址
* @param map 推送参数
* @param charset 推送参数编码格式
* @return String 返回值
*/
public static String HttpPostMap(String url,Map<String,String> map,String charset){
HttpClient httpClient = null;
HttpPost httpPost = null;
String result = null;
try{
httpClient = HttpClients.createDefault();
httpPost = new HttpPost(url);
//设置参数
List<NameValuePair> list = new ArrayList<NameValuePair>();
Iterator iterator = map.entrySet().iterator();
while(iterator.hasNext()){
Entry<String,String> elem = (Entry<String, String>) iterator.next();
list.add(new BasicNameValuePair(elem.getKey(),elem.getValue()));
}
if(list.size() > 0){
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list,charset);
httpPost.setEntity(entity);
HttpResponse response = httpClient.execute(httpPost);
if(response != null){
HttpEntity resEntity = response.getEntity();
if(resEntity != null){
result = EntityUtils.toString(resEntity,charset);
}
}
}
}catch(Exception ex){
ex.printStackTrace();
}
return result;
}
}
分享到:
相关推荐
在HTTP通信中,MIME类型用于定义传输数据的类型,比如文本、图像、音频或视频等。这个模块提供了用于构建和解析MIME格式请求实体的类和接口。它支持表单数据的上传,包括文件和其他复杂数据结构。例如,`...
HTTP Core库不包含任何HTTP应用程序特定的功能,但为HTTP客户端提供了基础的连接管理、请求/响应处理和传输编码等功能。主要类有`HttpClientConnectionManager`(管理HTTP连接)、`HttpRequest`和`HttpResponse`...
Apache HTTP 客户端库是Java开发者常用的网络通信工具,主要包含了`org.apache.http`相关的类和接口。这个jar包广泛应用于网络爬虫的开发,同时也适用于那些需要与Web服务器进行交互的Android应用,尤其是在处理HTTP...
在Apache中,openssl用于实现HTTPS服务,提供安全的网络通信,防止数据在传输过程中被窃取或篡改。 5. **httpd-2.4.43**:这就是Apache HTTP Server本身,版本号为2.4.43。这个版本包含了性能优化、安全改进和新...
在提供的信息中,我们看到Apache版本为2.0.63,这是一个较早的版本,发布于2007年,支持Windows 32位操作系统,并且集成了OpenSSL 0.9.7m版本,用于提供安全套接层(SSL)和传输层安全(TLS)协议,确保网络通信的...
7. **过滤器系统**:Apache的过滤器系统允许开发者在数据传输前对其进行处理,如修改响应内容、压缩数据等。`mod_deflate`就是一例,它使用GZIP压缩响应数据。API文档会阐述如何创建和注册过滤器。 8. **性能优化**...
标题中的"org.apache.http.jar"是一个Java库,属于Apache HttpClient项目的一部分。Apache HttpClient是一个流行的开源Java库,专门用于实现客户端HTTP通信。它提供了强大的功能,包括支持HTTP/1.1协议、连接管理、...
2. **httpcomponents-core-4.1.4-bin.tar.gz**:这是Apache HttpCore库的版本,它是HttpClient的基础,提供了HTTP协议传输层的低级实现,包括连接管理、协议处理和数据传输等功能。HttpCore的设计目的是为了降低复杂...
1. httpcore-4.x.jar:Apache HttpCore库,提供HTTP协议处理的基础组件,包括连接管理和传输机制。 2. httpcore-nio-4.x.jar:HttpCore的非阻塞I/O实现,适合高并发场景。 3. httpmime-4.x.jar:扩展了HttpClient,...
Apache HTTP Server(通常简称为Apache)是世界上最流行的Web服务器,而Tomcat则是一个开源的Java Servlet容器,主要用于运行Java Web应用程序。将这两者结合使用,可以实现强大的动态内容处理和静态资源服务。本文...
1. **HTTP协议库**:Apache服务器的核心功能之一是处理HTTP(超文本传输协议)请求。这通常依赖于如`libhttpd`这样的库,它提供对HTTP/1.1协议的支持。 2. **SSL/TLS支持**:为了实现安全的HTTPS连接,Apache需要`...
早期,Android系统支持使用Apache HTTP客户端库(HttpClient)进行网络请求,但在Android API Level 26(Android 8.0 Oreo)之后,该库被弃用,并在API Level 28(Android 9.0 Pie)中完全移除。这导致了许多依赖于...
2. **httpcore-4.1.4.jar**:Apache HttpCore是HttpClient的基础,提供低级别的HTTP协议处理,包括连接管理和传输编码。HttpCore专注于HTTP协议的执行,为HttpClient提供了基本的网络通信支持。 3. **httpclient-...
Apache HTTP Server,通常简称为Apache,是世界上最广泛使用的网络服务器软件之一。这个开源项目由Apache软件基金会维护,提供了丰富的功能和高度的可扩展性,使其能够处理各种类型的Web应用程序和服务器配置需求。...
这个开源项目由Apache软件基金会维护,它提供了一个跨平台的、稳定的、高性能的HTTP(超文本传输协议)服务环境。Apache 2.2版本是其历史上的一个重要版本,引入了许多改进和新特性,以增强性能、安全性和可扩展性。...
httpd - Apache超文本传输协议服务器 httxt2dbm - 生成RewriteMap指令使用的dbm文件 服务器和支持程序 logresolve - 解析Apache日志中的IP地址为主机名 其他程序 rotatelogs - 滚动Apache日志的管道日志程序 suexec...
2. **httpcore.jar**:这是HttpClient的基础,提供了HTTP协议的基本实现,包括连接管理和传输层。 3. **httpmime.jar**:用于处理MIME类型的请求,例如上传文件或发送复杂表单数据。 4. **httpclient-cache.jar**:...
这个压缩包文件"apache-httpcomponents-httpcore.jar.zip"包含了HTTPCore组件,它是Apache HTTP Components项目的基础部分,专注于提供低级别的HTTP传输机制。在本文中,我们将深入探讨HTTPCore的基本概念、功能以及...
这些是`HttpEntity`的实现,分别用于处理基本的流式数据、分块传输和文件上传。 5. `HttpProtocolParams`与`HttpParams` 这些类用于设置和管理HTTP协议参数,如编码、版本、超时等。 三、常用类与接口 1. `...
6. **httpcore-4.2.2.jar**:这是HttpComponents Core的版本4.2.2,它是HttpClient的基础,提供了HTTP传输协议的基本实现,包括连接管理和I/O处理。 7. **httpclient-cache-4.2.3.jar**:这是一个专门处理HTTP缓存...