【HttpClient4.5中文教程】【第一章 :基础】1.6 终止请求,1.7 重定向处理
2015-10-10 13:10
525 查看
1.6.终止请求
在一些情况下,由于目标服务器的高负载或客户端有很多同时的请求发出,那么 HTTP 请求会在预期的时间内执行失败。 这时,有必要过早地中止请求,解除在 I/O 执行中的线程锁。 HttpClient 执行时,可以在任意阶段通过调用HttpUriRequest#abort()方法中止请求。 这个方法是线程安全的,而且可以从任意线程中调用。当一个 HTTP 请求被中止时,它的执行线程--就封锁在 I/O 操作中了--而且保证通过抛出InterruptedIOException异常来解锁。
1.7.重定向处理
HttpClient自动处理所有类型的重定向。除了那些由 HTTP 规范明令禁止的,比如需要用
户干预的。参考其它(状态码 303)POST 和 PUT 请求的重定向转换为符合 HTTP 规范要求的 GET请求。你可以使用一个重定向策略,来突破POST方法自动重定向的限制(POST自动重定向为HTTP规范强加)。
在请求报文执行过程中,HttpClient经常需要改写它。每个默认的HTTP/1.0和HTTP/1.1使用相对URI。同样,原始请求需要从一个地址重定向到另一个地址多次。最终绝对的HTTP地址将会被原始的请求和上下文构建。功能方法URIUtils#resolve被使用来构建最终请求形成的绝对URI。这个方法包含了来自于重定向和原始请求的上一个标识。
在一些情况下,由于目标服务器的高负载或客户端有很多同时的请求发出,那么 HTTP 请求会在预期的时间内执行失败。 这时,有必要过早地中止请求,解除在 I/O 执行中的线程锁。 HttpClient 执行时,可以在任意阶段通过调用HttpUriRequest#abort()方法中止请求。 这个方法是线程安全的,而且可以从任意线程中调用。当一个 HTTP 请求被中止时,它的执行线程--就封锁在 I/O 操作中了--而且保证通过抛出InterruptedIOException异常来解锁。
1.7.重定向处理
HttpClient自动处理所有类型的重定向。除了那些由 HTTP 规范明令禁止的,比如需要用
户干预的。参考其它(状态码 303)POST 和 PUT 请求的重定向转换为符合 HTTP 规范要求的 GET请求。你可以使用一个重定向策略,来突破POST方法自动重定向的限制(POST自动重定向为HTTP规范强加)。
在请求报文执行过程中,HttpClient经常需要改写它。每个默认的HTTP/1.0和HTTP/1.1使用相对URI。同样,原始请求需要从一个地址重定向到另一个地址多次。最终绝对的HTTP地址将会被原始的请求和上下文构建。功能方法URIUtils#resolve被使用来构建最终请求形成的绝对URI。这个方法包含了来自于重定向和原始请求的上一个标识。
相关文章推荐
- Windows 下 Apache HTTP Server 安装、配置以及与 Tomcat 的整合(附图)
- 【HttpClient4.5中文教程】【第一章 :基础】1.5 异常处理
- 【HttpClient4.5中文教程】【第一章 :基础】1.4 HTTP协议拦截器
- DHC谷歌浏览器插件的安装
- HttpClient 4.3超时设置
- 宿主机与虚拟机网络搭建(host-only)
- IIS7.5 Error Code 0x8007007e HTTP 错误 500.19的解决方法
- 禁用网络连接后无法访问本机数据库的问题
- 三大WEB服务器对比分析(apache ,lighttpd,nginx)
- 网络流+打印路径 Codeforces510E Fox And Dinner
- http响应代码解释
- wpa_supplicant无线网络配置
- Http服务器实现文件上传与下载(五)
- Xcode7 网络请求报错:The resource could not be loaded because the App Transport Security policy requir
- iOS开发工具-网络封包分析工具Charles
- 关于Java的TCP编程
- Linux网络编程之六 --在线英英字典的实现
- Linux网络编程之五
- Linux网络编程之四
- Linux网络编程之三