没有合适的资源?快使用搜索试试~ 我知道了~
首页JAVA调用HTTP及httpclient的详细说明
JAVA调用HTTP及httpclient的详细说明
需积分: 50 24 下载量 29 浏览量
更新于2023-03-16
评论
收藏 87KB DOCX 举报
JAVA调用HTTP及httpclient的详细说明,包括HttpClient Post/GetMethod 转码方案汇总,使用httpclient实现http接口调用实例,含具体代码
资源详情
资源评论
资源推荐
最常用的 请求无非是 和 , 请求可以获取静态页面,也可以把参数放在
字串后面,传递给 , 与 的不同之处在于 的参数不是放在 字串里面,
而是放在 请求的正文内。
在 中可以使用 发起这两种请求,了解此类,对于了解 ,和编
写 的自动测试代码都有很大的帮助。
下面的代码简单描述了如何使用 发起这两种请求,以及传递参数的方法:
!"#$$#%&%&$'()"*
+, !"#$$#%&%&$'()"*
--.(/0',1
$$拼凑 请求的 字串,使用 -2- 对特殊和不可见字符进行编码
! 3"4(!"
3-2-/"5("6"57%"0*
!'/0*
$$根据拼凑的 ,打开连接,2 函数会根据 的类型,
$$返回不同的 子类的对象,这里 是一个 ,因此实际返回的是
!/0
2/0*
$$进行连接,但是实际上 8 要在下一句的 2(/0函
数中才会真正发到
$$服务器
2/0*
$$取得输入流,并使用 - 读取
9:---!'9:--/'(-/
2(/000*
;(22/"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"0*
;(22/"58"0*
;(22/"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"0*
*
'//!-2-/00<!0
;(22/0*
=
-2/0*
$$断开连接
2-/0*
;(22/"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"0*
;(22/"58-"0*
;(22/"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"0*
=
--.(+/0',1
$$+ 请求的 ,与 不同的是不需要带参数
!'/+, 0*
$$打开连接
!/0
2/0*
$$,2>5
$$56
$$(-('(
$$
$$设置是否向 输出,因为这个是 请求,参数要放在
$$ 正文内,因此需要设为
2>,/0*
$$-5(2>52
2>/0*
$$(-2>5
28?-/"+,"0*
$$+
$$+请求不能使用缓存
2/50*
$$(-:
$$;52
$$2.'- 是 函数,作用于所有的
对象。
$$2.'-/0*
$$(-;
$$:
$$2
$$2.'- 是成员函数,仅作用于当前函数
2.'-/0*
$$;--6
$$'''
$$(7--
$$2(5<
$$配置本次连接的 7;,配置为 $17'''75(7-- 的
$$意思是正文是 -- 编码过的 5( 参数,下面我们可以看到我们对正文内容使
用 -2-
$$进行编码
28+;/"7;"6
"$17'''75(7--"0*
$$连接,从 2/0至此的配置必须要在 之前完成,
$$要注意的是 2,( 会隐含的进行 。
2/0*
>,(!'>,(/
2,(/00*
$$7---
$$正文,正文内容其实跟 的 中@4@后的参数字符串一致
!"(!"3-2-/"一个大肥人"6"57%"0*
$$>,(2'9; 将字符串中的 )A 位的 - 字符以 % 位的字符
形式写道流里面
2'9;/0*
2B/0*
2/0*$$B-
9:---!'9:--/'(-/
2(/000*
*
;(22/"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"0*
;(22/"58"0*
;(22/"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"0*
'//!-2-/00<!0
;(22/0*
=
;(22/"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"0*
;(22/"58-"0*
;(22/"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"0*
-2/0*
2-/0*
=
$CCC$$CC
CD(
C$
-(/EF0
$$,>,G7-(-
;
-.(/0*
-.(+/0*
=/,10
$$,>,G7-
2/0*
=
=
=
上面的 -.(/0函数产生了一个 请求,传给 一个 ( 参
数,值为"5H("。
-.(+/0函数产生了一个 请求,传给 一个 ( 参数,值
为"一个大肥人"。
2 函数,实际上只是建立了一个与服务器的 连接,并没有实
际发送 请求。无论是 还是 , 请求实际上直到
2(/0这个函数里面才正式发送出去。
在 -.(+/0H中,顺序是重中之重,对 对象的一切配置(那一堆
函数)都必须要在 /0函数执行之前完成。而对 ( 的写操作,又必须
要在 ( 的读操作之前。这些顺序实际上是由 请求的格式决定的。
H请求实际上由两部分组成,一个是 头,所有关于此次 请求的配置都在 头
里面定义,一个是正文 ,在 /0函 数里面,会根据 对象
的配置值生成 头,因此在调用 函数之前,就必须把所有的配置准备好。
紧接着 头的是 请求的正文,正文的内容通过 ( 写入,实际上
( 不是一个网络流,充其量是个字符串流,往里面写入的东西不会立即发送到网
络,而是在流关闭后,根据输入的内容生成 正文。
至 此, 请求的东西已经准备就绪。在 (/0函数调用的时候,就会把准备好
的 请求正式发送到服务器了,然后返回一个 输入流,用于读取服务器对于此次 请求
的返回信息。由于 请求在 ( 的时候已经发送出去了(包括 头和正
文),因此在 (/0函数之后对 对象进行设置(对 头的信息进
行修改)或者写入 ((对正文进行修改)都是没有意义的了,执行这些操作会导
致异常的发生
上节说道, 请求的 ,( 实际上不是网络流,而是写入内存,在
( 中才真正把写道流里面的内容作为正文 与根据之前的配置生成的 H
8 头合并成真正的 H8,并在此时才真正向服务器发送。
2-(?-H函数可以改变这个模式,设置了
-(?- 后,不再等待 ,( 关闭后生成完整的 H8
一次过发送,而是先发送 H8 头,正文内容则是网路流的方式实时传送到服务器。
实际上是不告诉服务器 正文的长度,这种模式适用于向服务器传送较大的或者是不容易
获取长度的数据,如文件。
--.(-+/0',1
!'/+, 0*
!/0
2/0*
2>,/0*
2>/0*
28?-/"+,"0*
2/50*
2.'-/0*
28+;/"7;"6
"$17'''75(7--"0*
$CC$$C
C与 -.(+/0最大的不同,设置了块大小为 I 字节
C$
2-(?-/I0*
2/0*
$CC$$C
C注意,下面的 ,( 函数工作方式于在 -.(+/0里面
的不同
C在 -.(+/0里面该函数仍在准备 8,没有向服务器发送
任何数据
C而在这里由于设置了 -(?-,,( 函数会根据
之前的配置
C生成 8 头,先发送到服务器。
C$
>,(!'>,(/
2,(/00*
!"(!"3-2-/"一个大肥人
"3
""3
"-55-5-5-5-5-5-5"6"57%"0*
2'9;/0*
2B/0*
2/0*$$到此时服务器已经收到了完整的 8 了,而在
-.(+/0函数里,要等到下一句服务器才能收到 请求。
9:---!'9:--/'(-/
2(/000*
2B/0*
2/0*$$B-
*
;(22/"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"0*
剩余56页未读,继续阅读
tinkog
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 27页智慧街道信息化建设综合解决方案.pptx
- 计算机二级Ms-Office选择题汇总.doc
- 单链表的插入和删除实验报告 (2).docx
- 单链表的插入和删除实验报告.pdf
- 物联网智能终端项目设备管理方案.pdf
- 如何打造品牌的模式.doc
- 样式控制与页面布局.pdf
- 武汉理工Java实验报告(二).docx
- 2021线上新品消费趋势报告.pdf
- 第3章 Matlab中的矩阵及其运算.docx
- 基于Web的人力资源管理系统的必要性和可行性.doc
- 基于一阶倒立摆的matlab仿真实验.doc
- 速运公司物流管理模式研究教材
- 大数据与管理.pptx
- 单片机课程设计之步进电机.doc
- 大数据与数据挖掘.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0