JAVA: httpclient 具体解释——第五章;

httpclient 具体解释——第一章;

httpclient 具体解释——第二章;

httpclient 具体解释——第三章;

httpclient 具体解释——第四章;

httpclient 具体解释——第五章;

httpclient 具体解释——第六章;

httpclient 具体解释——第七章;

相对于httpurlconnection ,httpclient更加丰富,也更加强大,当中apache有两个项目都是httpclient,一个是commonts包下的,这个是通用的,更专业的是org.apache.http.包下的,所以我一般用后者;

httpclient能够处理长连接,保存会话,重连接,以及请求过滤器,连接重用等等...

以下是測试代码(所有总结来自官方文档,以及翻译)

需要下载核心包:httpclient-4.3.4.jar ,也可在官网下载:http://hc.apache.org/downloads.cgi

//--------------------------  高速API ---------------------------------

	/**
	 * 高速api仅仅提供最主要的功能,仅仅用于不需要灵活扩展的场景
	 */
	private static void test22() throws ClientProtocolException, IOException{

		String result = Request.Get("http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx/getDatabaseInfo")
				.connectTimeout(1000)//设置server请求超时
				.socketTimeout(1000)//设置server对应超时
				.execute()
				.returnContent()
				.asString();

		String result2 = Request.Post("http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx/getDatabaseInfo")
				.useExpectContinue()
				.version(HttpVersion.HTTP_1_1)
				.bodyString("參数", ContentType.DEFAULT_TEXT)
				.execute()
				.returnContent()
				.asString();

		//提交HTML表单 ,并保存返回结果
		Request.Post("http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx/getDatabaseInfo")
		        .addHeader("X-Custom-header", "stuff") // 表单头
		        .viaProxy(new HttpHost("myproxy", 8080))  // 设置代理
		        .bodyForm(Form.form()   //表单
					          .add("mobileCode", "12345")
					          .add("userID", "123456")
					          .build())
		        .execute()
		        .saveContent(new File("result.txt")); 

		System.out.println(result);
		System.out.println(result2);

	}

	/**
	 * 利用Executor 高速开发;
	 * 假设需要在指定的安全上下文中运行某些请求,我们也能够直接使用Exector,
	 * 这时候用户的认证信息就会被缓存起来,以便兴许的请求使用。
	 */
	private static void test23() throws ClientProtocolException, IOException{

	    Executor executor = Executor.newInstance()
	            .auth(new HttpHost("somehost",8080), "username", "password")//加入认证
	            .authPreemptive(new HttpHost("somehost", 8080));  //使用抢先认证

	    executor.execute(Request.Get("http://somehost/"))//运行get请求
	            .returnContent().asString();

	    executor.execute(Request.Post("http://somehost/") //运行post请求
	            .useExpectContinue()
	            .bodyString("Important stuff", ContentType.DEFAULT_TEXT))
	            .returnContent().asString();

	}

	/**
	 *
	 * 高速响应处理
	 *
	 * 利用request高速发送get请求,并用ResponseHandler 回调返回结果;
	 */
	private static void test24() throws ClientProtocolException, IOException {

		Object result = Request .Get("http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx/getDatabaseInfo")
				.execute().handleResponse(new ResponseHandler<Object>() {

					public Object handleResponse(final HttpResponse response) throws IOException {

						StatusLine statusLine = response.getStatusLine();

						if(statusLine.getStatusCode()==200){

							HttpEntity entity = response.getEntity();
							if (entity != null) {
								String str = EntityUtils.toString(entity);
								return str;
							}
						}

						return null;
					}

				});

		if (result != null) {
			System.out.println(">>>>>>"+result);
		}

	}
时间: 2024-08-07 04:34:02

JAVA: httpclient 具体解释——第五章;的相关文章

JAVA: httpclient 详解——第五章;

相对于httpurlconnection ,httpclient更加丰富,也更加强大,其中apache有两个项目都是httpclient,一个是commonts包下的,这个是通用的,更专业的是org.apache.http.包下的,所以我一般用后者: httpclient可以处理长连接,保存会话,重连接,以及请求过滤器,连接重用等等... 下面是测试代码(全部总结来自官方文档,以及翻译) 须要下载核心包:httpclient-4.3.4.jar ,也可在官网下载:http://hc.apache

JAVA: httpclient 详解——第六章;

httpclient 详解--第一章: httpclient 详解--第二章: httpclient 详解--第三章: httpclient 详解--第四章: httpclient 详解--第五章: httpclient 详解--第六章: httpclient 详解--第七章: 相对于httpurlconnection ,httpclient更加丰富,也更加强大,其中apache有两个项目都是httpclient,一个是commonts包下的,这个是通用的,更专业的是org.apache.htt

JAVA: httpclient 详解——第七章;

httpclient 详解--第一章: httpclient 详解--第二章: httpclient 详解--第三章: httpclient 详解--第四章: httpclient 详解--第五章: httpclient 详解--第六章: httpclient 详解--第七章: 相对于httpurlconnection ,httpclient更加丰富,也更加强大,其中apache有两个项目都是httpclient,一个是commonts包下的,这个是通用的,更专业的是org.apache.htt

“全栈2019”Java多线程第三十五章:如何获取线程被等待的时间?

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多线程第三十五章:如何获取线程被等待的时间? 下一章 "全栈2019"Java多线程第三十六章:如何设置线程的等待截止时间 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复&qu

[Java Concurrency in Practice]二至五章小结

下面这个"并发技巧清单"列举了在第一部分(二至五章)中介绍的主要概念和规则. 可变状态是至关重要的(It's the mutable state,stupid). 所有的并发问题都可以归结为如何协调对并发状态的访问.可变状态越少,就越容易确保线程安全性. 尽量将域声明为final类型,除非需要它们是可变的. 不可变对象一定是线程安全的. 不可变对象能极大地降低并发编程的复杂性.它们更为简单而且安全,可以任意共享而无须使用加锁或保护性复制等机制. 封装有助于管理复杂性. 在编写线程安全的

[Java学习笔记] Java核心技术 卷1 第五章 继承

第5章 继承 利用继承,可以基于已存在的类构造一个新类.继承已存在的类就是复用(继承)这些类的方法和域.还可以在此基础上添加新的方法和域. 反射. 5.1 超类子类 使用extends构造一个派生类 class Manager extends Employee { 添加方法和域 覆盖:重写一些基类中不适合派生类的方法 } 所有的继承都是公有继承.即所有的公有成员和保护成员都保持原来的状态,基类的私有成员仍然是私有的.不能被派生类的成员访问. (C++中私有继承或保护继承会将 公有成员和保护成员都

JAVA: httpclient 详解——第三章;

相对于httpurlconnection ,httpclient更加丰富,也更加强大,其中apache有两个项目都是httpclient,一个是commonts包下的,这个是通用的,更专业的是org.apache.http.包下的,所以我一般用后者: httpclient可以处理长连接,保存会话,重连接,以及请求过滤器,连接重用等等... 下面是测试代码(全部总结来自官方文档,以及翻译) 须要下载核心包:httpclient-4.3.4.jar ,也可在官网下载:http://hc.apache

Java入门 第一季第五章 编程练习解析

这是我学习慕课网Java课程的笔记.原视频链接为:http://www.imooc.com/learn/85 5-1 基本写法 自己主动补全快捷键:alt + / 5-2 输入输出 使用Scanner工具类来获取用户输入的成绩信息 Scanner类位于 java.util包中,使用时须要导入此包 步骤: 1.导入java.util.Scanner 2.创建Scanner对象 3.接收并保存用户输入的值 System.out.println() 与 System.out.print() 的差别:

JAVA: httpclient 详解——第四章;

相对于httpurlconnection ,httpclient更加丰富,也更加强大,其中apache有两个项目都是httpclient,一个是commonts包下的,这个是通用的,更专业的是org.apache.http.包下的,所以我一般用后者: httpclient可以处理长连接,保存会话,重连接,以及请求过滤器,连接重用等等... 下面是测试代码(全部总结来自官方文档,以及翻译) 须要下载核心包:httpclient-4.3.4.jar ,也可在官网下载:http://hc.apache