博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【HttpClient4.5中文教程】八.终止请求和重定向处理
阅读量:4291 次
发布时间:2019-05-27

本文共 592 字,大约阅读时间需要 1 分钟。

1.终止请求

在一些情况下,由于目标服务器的高负载或客户端有很多同时的请求发出,那么 HTTP 请求会在预期的时间内执行失败。 这时,有必要过早地中止请求,解除在 I/O 执行中的线程锁。 HttpClient 执行时,可以在任意阶段通过调用HttpUriRequest#abort()方法中止请求。 这个方法是线程安全的,而且可以从任意线程中调用。当一个 HTTP 请求被中止时,它的执行线程--就封锁在 I/O 操作中了--而且保证通过抛出InterruptedIOException异常来解锁。

2.重定向处理

HttpClient自动处理所有类型的重定向。除了那些由 HTTP 规范明令禁止的,比如需要用

户干预的。参考其它(状态码 303)POST 和 PUT 请求的重定向转换为符合 HTTP 规范要求的 GET请求。你可以使用一个重定向策略,来突破POST方法自动重定向的限制(POST自动重定向为HTTP规范强加)。

在请求报文执行过程中,HttpClient经常需要改写它。每个默认的HTTP/1.0和HTTP/1.1使用相对URI。同样,原始请求需要从一个地址重定向到另一个地址多次。最终绝对的HTTP地址将会被原始的请求和上下文构建。功能方法URIUtils#resolve被使用来构建最终请求形成的绝对URI。这个方法包含了来自于重定向和原始请求的上一个标识。

你可能感兴趣的文章
Java基础之IO流判断文件夹或文件是否存在及其如何创建?
查看>>
java系列(八)枯燥的基础总结
查看>>
北漂面试经历(一(两)年工作经验)——Java基础部分
查看>>
一道有关内存泄漏的阿里巴巴JAVA工程师笔试题
查看>>
多线程之synchronized锁字符串对象的一个易错点
查看>>
JavaEE开发之SpringBoot整合MyBatis以及Thymeleaf模板引擎
查看>>
Java快速排序
查看>>
Linux系统基础-基本系统管理命令
查看>>
关于如何动态导出Excel表格——选择想要导出的字段
查看>>
我理解的java-内存模型
查看>>
在 Linux 上给用户赋予指定目录的读写权限
查看>>
java高并发解决方案
查看>>
Mysql 面试实战系列(四)——快马扬鞭
查看>>
数据库SQL优化大总结之 百万级数据库优化方案
查看>>
WEB服务器调优
查看>>
常用函数语法
查看>>
tomcat 7负载均衡-memcache-session
查看>>
MySQL无法创建表的问题分析(r12笔记第73天)
查看>>
JavaScript数据类型的强制转化-数值
查看>>
如何使用Spring Boot快速创建Web应用
查看>>