Apache HttpClient

Apache HttpClient总览 Apache HttpClient 4.x 系列• HttpClient 4.0(发布于2008年左右):这是一个重要的里程碑,标志着HttpClient从Jakarta Commons项目转移到Apache HttpComponents项目。4.0版进行了大量的重构,引入了新的连接管理模型(基于HttpCore),支持了HTTP/1.1的持久连接、连接池以及更灵活的配置选项。 阅读详情
  采用Apache HttpClient与远程服务器通信。为了简化HttpClient的用法,定义了一个工具类对HttpClient进行封装该工具类定义了如下两个方法来发送请求
  getRequest():发送Get请求
  postRequest():发送post请求
package org.crazyit.auction.client.util;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
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.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;

public class HttpUtil
{
	// 创建HttpClient对象
	public static HttpClient httpClient = new DefaultHttpClient();
	public static final String BASE_URL =
		"http://192.168.1.88:8888/auction/android/";
	/**
	 *
	 * @param url 发送请求的URL
	 * @return 服务器响应字符串
	 * @throws Exception
	 */
	public static String getRequest(final String url)
		throws Exception
	{
		FutureTask<String> task = new FutureTask<String>(
		new Callable<String>()
		{
			@Override
			public String call() throws Exception
			{
				// 创建HttpGet对象。
				HttpGet get = new HttpGet(url);
				// 发送GET请求
				HttpResponse httpResponse = httpClient.execute(get);
				// 如果服务器成功地返回响应
				if (httpResponse.getStatusLine()
					.getStatusCode() == 200)
				{
					// 获取服务器响应字符串
					String result = EntityUtils
						.toString(httpResponse.getEntity());
					return result;
				}
				return null;
			}
		});
		new Thread(task).start();
		return task.get();
	}

	/**
	 * @param url 发送请求的URL
	 * @param params 请求参数
	 * @return 服务器响应字符串
	 * @throws Exception
	 */
	public static String postRequest(final String url
		, final Map<String ,String> rawParams)throws Exception
	{
		FutureTask<String> task = new FutureTask<String>(
		new Callable<String>()
		{
			@Override
			public String call() throws Exception
			{
				// 创建HttpPost对象。
				HttpPost post = new HttpPost(url);
				// 如果传递参数个数比较多的话可以对传递的参数进行封装
				List<NameValuePair> params = 
					new ArrayList<NameValuePair>();
				
				for(String key : rawParams.keySet())
				{
					//封装请求参数
					params.add(new BasicNameValuePair(key 
						, rawParams.get(key)));
				}
				// 设置请求参数
				post.setEntity(new UrlEncodedFormEntity(
					params, "gbk"));
				// 发送POST请求
				HttpResponse httpResponse = httpClient.execute(post);
				// 如果服务器成功地返回响应
				if (httpResponse.getStatusLine()
					.getStatusCode() == 200)
				{
					// 获取服务器响应字符串
					String result = EntityUtils
						.toString(httpResponse.getEntity());
					return result;
				}
				return null;
			}
		});
		new Thread(task).start();
		return task.get();
	}
}
</pre><pre name="code" class="java">
补充说明:
<span style="white-space:pre">	<span style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 28px; text-align: center;">Java并发编程:Callable、Future和FutureTask</span></span>
<span style="white-space:pre"><span style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 28px; text-align: center;"><span style="white-space:pre">	</span> 请查看<span style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 28px;">http://www.cnblogs.com/dolphin0520/p/3949310.html</span></span></span>



Apache HttpClient 5 使用详细教程 转存失败重新上传取消超文本传输协议(HTTP)可能是当今互联网上最重要的协议之一,Web 服务、微服务以及支持网络的各种设备上的服务几乎都是 HTTP 协议,HTTP 协议已经从 Web 浏览器走向了更广泛的使用场景。虽然java.net包已经提供了 HTTP 访问资源的基本功能,但是它不够灵活,而且不能随心所欲的进行自定义。... 阅读详情

相关推荐

JDK自带的HttpClient,替代Apache的更优解?

JDK 官方HttpClient的加入标志着 Java 网络通信 API 的一次重要革新。✅ 更轻的依赖管理✅ 更清晰的异步模型✅ 更现代的 API 设计但在一些高级场景中,Apache HttpClient 仍具有不可替代的优势。如果你是从零开始,优先使用 JDK 原生 HttpClient;如果你在维护老项目,不妨先封装一层调用,再逐步替换底层实现,避免全量重构带来的高风险和高成本。

你好,我是橙序员 1441

Apache HttpClient: 一个非常流行的 HTTP 客户端库

它封装了底层的 TCP/IP 通信细节,提供了简单易用的 API 来构建 HTTP 请求(如 GET、POST、PUT、DELETE 等),并将这些请求发送到指定的服务器。:Apache HttpClient 提供了全面的 HTTP 客户端功能,包括 GET、POST、PUT、DELETE 等各种请求方法,以及支持 HTTP/1.1 和 HTTP/2 协议。同时,HttpClient 的设计也考虑到了扩展性,使得开发者可以轻松地添加自定义的请求拦截器、响应处理器等组件,以满足特定的需求。

Aaron_945的博客 3075

Apache HttpClient 的用例

要使用摘要式身份验证,您可以使用类来配置并使用类的方法设置凭证。

分享各种技术文章,给大家带来不一样的视野。 1062

apache HttpClient参数说明

正文 HttpClient组件使用的地方较多,很多HTTP客户端都是封装的HTTPClient(spring restTempalte就是基于HTTPClient构建的);HTTPClient可以设置的参数较多,部分参数的设置堆系统影响较大,需要对各个参数有个透彻的了解。 以下是基于使用PoolingHttpClientConnectionManager 项目 说明 默认值 备注 maxConnTotal HTTPClient能够创建的最大连接数 20 达到上线后,需要等待其他连接销毁后才能

shuxiaohua的博客 3221

Apache HttpClient 简介

是一个流行的开源库,用于在 Java 中发送 HTTP 请求和接收 HTTP 响应。它为构建基于 HTTP 的客户端应用程序提供了一组丰富的功能,包括对身份验证、连接池、请求和响应拦截等的支持。Apache HttpClient 的主要优势之一是其灵活性和可配置性。您可以自定义 HTTP 请求和响应处理过程的几乎每个方面,从设置标头和请求参数到处理重定向和处理错误。

分享各种技术文章,给大家带来不一样的视野。 757

【R语言】富集分析可视化代码(整理版)

分别介绍了如何使用DAVID在线分析工具对基因进行GO/KEGG功能富集分析、使用R ggplot包对获得的基因GO/KEGG功能富集结果进行可视化、使用R clusterProfiler包和R AnnotationHub包对基因进行GO/KEGG功能富集分析、OrgDb包制作以及结果可视化等。故,我重新整理了一波,并补充了可对多个分组的富集结果进行可视化以及富集结果绘制圈图等的代码。关注“在打豆豆的小潘学长”公众号,发送“富集分析3”获得完整代码包和演示数据。一、单组富集结果可视化。

weixin_54004950的博客 1万+

apache的HttpClient使用总结

目录 1.前言 2.Apache官网例子 3.HttpClient及其连接池配置 4.MaxtTotal和DefaultMaxPerRoute的区别 5.HttpClient连接池模型 6.HttpClient从连接池中获取连接源码分析 7.HttpClient从连接池中获取连接流程图 8.连接重用和保持策略 8.1.HttpClientBuilder创建MainClientExec 8.2.ConnectionReuseStrategy(连接重用策略) 8.3.MainCl...

wujun2412的博客 3767

Thompson Sampling vs UCB:5个真实业务场景下的算法选型指南

本文深入对比了Thompson Sampling与UCB算法在电商推荐、在线广告、医疗试验、金融定价和游戏调整五大真实业务场景下的表现。通过量化指标分析,为技术决策者提供了清晰的选型指南:Thompson Sampling凭借其概率匹配和贝叶斯框架,在需要快速收敛、处理冷启动及复杂约束的场景中通常更具优势;而UCB则在要求确定性、可解释性和理论保证的场景下表现更佳。

weixin_29181861的博客 153

Apache HttpClient 详解

1、简介 HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。HttpClient 已经应用在很多的项目中,比如 Apache Jakarta 上很著名的另外两个开源项目 Cactus 和 HTMLUnit 都使用了 HttpClient。 HttpClient 相比传统 JDK 自带的 URLConnection,增加了易用性和灵活性,它不仅是客户端发送

小强快跑~~ 3660

利用树莓派制作智能音箱

利用树莓派制作智能音箱

qq_61803022的博客 1777

线性代数笔记【空间曲面】

二次曲面 曲面可以看成是一个动点或一条动曲线按照一定条件或规律运动产生的轨迹 曲面的方程即是该动点的坐标所满足的方程 空间解析几何中,一般会涉及到由曲面写方程和由方程看曲面两种类型问题 曲面与曲面方程 球面方程 球面:空间内与定点的距离等于定长的点的集合 这一定点叫球心,定长叫半径 标准方程 (x−x0)2+(y−y0)2+(z−z0)2=r2(x-x_0)^2+(y-y_0)^2+(z-z_0)^2=r^2(x−x0​)2+(y−y0​)2+(z−z0​)2=r2 球心P0(x0,y0,z0)P_0(

qq_40500005的博客 3246

Apache HttpClient的用法

Apache HttpClient 简介   HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。 Apache HttpClient 使用步骤 01 添加Jar包 未使用Meaven的在项目中添加以下jar包 httpclient 4.5.5、l...

weixin_43881282的博客 782

XCP_Basic 移植步骤

XCP_Basic 移植步骤

ggzzc的博客 2316

Apache HttpClient示例

本文向您展示如何使用Apache HttpClient发送HTTP GET / POST请求,JSON,身份验证,超时,重定向以及一些常用示例。 PS已通过HttpClient 4.5.10测试 pom.xml <dependency> <groupId>org.apache.httpcomponents</groupId> &l...

一名可爱的技术搬运工 7466

深入浅出:UE4类型系统完整构建过程详解

UE4的类型系统是一个复杂但设计精巧的架构,它通过静态代码生成和运行时构建的完美配合,实现了强大的反射功能。理解这个过程不仅有助于解决开发中的问题,也能让你更好地利用UE4的各种高级特性。就像建造一栋大楼需要经过设计、备料、框架、装修、验收等多个阶段,UE4类型系统的构建也是一个多阶段、精细化的过程。每个阶段都有其特定的职责,共同协作完成从源代码到运行时对象的转换。

m0_45371381的博客 911

单反相机物镜设计[DG-10]

REAR(要打在像面,操作数要找像面对应位置15):以透镜单位表示的真实光线径向坐标,波长由Wave定义,参见“Hx、Hy、Px和Py”。最小玻璃厚度最小不能小于semi-dia的1/10,要根据layout看有没有过厚过薄,反复调节。PROD:两个操作数的乘积(操作#1 X操作#2)。3x4就是57.3x0.41=23.5。拦光一般在第一面和最后一面操作,减少边缘无用光线。光阑面与镜面贴近,要调距离,同时设置光阑像差。后截距是指从镜头后表面到焦点的距离。CONS:弧度转为角度。镜头相互嵌入,有错误。

weixin_72050316的博客 600

Apache httpclient的使用

参考:https://blog.youkuaiyun.com/wangpeng047/article/details/19624529Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高...

jiang2011tao的专栏 1万+

微信小程序——01开发前的准备和开发工具

微信小程序——01开发前的准备和开发工具

总裁余(余登武)博客 1万+

apache HttpClient

简单备注下Apache HttpClient常用封装使用包括get,post及发送文件相关,直接上代码。 public static void closeHttpResource(CloseableHttpClient closeableHttpClient, CloseableHttpResponse closeableHttpResponse) { try { if (null !=

u013067015的博客 235

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Apache HttpClient示例– CloseableHttpClient

Apache HttpClient can be used to send HTTP requests from client code to server. In our last tutorial, we saw how to use HttpURLConnection to perform GET and POST HTTP request operations from java prog...

从零开始的教程世界 3025

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

关于Apache的HttpClient一些使用心得

关于Apache的HttpClient一些使用心得HttpClient官方说明简单示例忽略安全证书设置设置自动重定向 HttpClient官方说明 Download ‘Binary’ package of the latest HttpClient 4.5 release or configure dependency on HttpClient and Fluent HC modules u...

风雨的博客 4683

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Apache HttpClient 与 SSL 代理

有这样一个场景,出于安全的考虑,某些操作敏感数据的客户端必须通过 VPN 访问服务器端。这种客户端我们姑且称之为代理访问。访问路由示意图: HTTPS Client <------- Encrypted CONNECT Requests -------> HTTPS Proxy <------- Encrypted CONNECT Requests -------> HT...

Defonds 的专栏 1935

apache-httpclient 入门

HttpClient简介HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java.net 包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient 是 Apache Jakarta Commo

javavenus的专栏 2万+

如何在Apache HttpClient中设置TLS版本

1、简介 Apache HttpClient是一个底层、轻量级的客户端HTTP库,用于与HTTP服务器进行通信。 在本教程中,我们将学习如何在使用HttpClient时配置支持的传输层安全(TLS)版本。 我们将首先概述TLS版本协商如何在客户端和服务器之间工作。 之后,我们将看看在使用HttpClient时配置支持的TLS版本的三种不同方式。 2、TLS版本协商 TLS是一种互联网协议,可在两方之间提供安全、可信的通信。它封装了像HTTP这样的应用层协议。 TLS协议自1999年首次发布以来已多次修订。

一个程序员 3880

Apache HttpClient调用WebService

引言 公司一直在用一个叫做SOAPUI的付费软件在做后端服务测试,这个软件是按年按人头收费的。SOAPUI是非常好用,基本不用写什么代码,简单的几步UI的操作就可以调用后台服务。 我有时候在想,如果哪一天这个软件涨价了,昂贵的使管理层不愿意购买了,或者到了一个新环境不用这个软件了,如何搭建后端服务的测试框架呢?经过一段时间的研究,发现Apache HTTPClient很适合作为Web服务调用的工具...

Stone_Wang123的博客 914
上一篇: 快速排序
下一篇: java的json
Simple_Man_Just
博客等级 码龄11年 18粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值