http RequestConfig配置类中各参数的意思

这篇具有很好参考价值的文章主要介绍了http RequestConfig配置类中各参数的意思。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

RequestConfig类是Apache HttpClient中的一个配置类,用于设置HTTP请求的配置参数。下面是RequestConfig中各参数的详细解释和代码示例:

connectTimeout:连接超时时间,即连接建立的最长时间,超过此时间则抛出ConnectTimeoutException异常。默认值为0,表示无限等待。
示例代码:

RequestConfig requestConfig = RequestConfig.custom()
        .setConnectTimeout(5000) // 连接超时时间为5秒
        .build();

这里的连接指的是建立TCP连接的时间,在HTTP请求中,需要先建立TCP连接才能进行数据传输。如果连接建立的时间超过了设置的连接超时时间,就会抛出ConnectTimeoutException异常。
下面是一个简单的示例代码,其中使用HttpClient发送一个HTTP GET请求,并设置连接超时时间为5秒:

CloseableHttpClient httpClient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet("http://www.example.com");
RequestConfig requestConfig = RequestConfig.custom()
        .setConnectTimeout(5000) // 设置连接超时时间为5秒
        .build();
httpGet.setConfig(requestConfig);
CloseableHttpResponse response = httpClient.execute(httpGet);

在上面的代码中,创建了一个默认的CloseableHttpClient对象httpClient,并使用HttpGet构造方法创建一个HTTP GET请求对象httpGet,然后使用RequestConfig设置连接超时时间为5秒,并将其设置到httpGet对象中,最后使用httpClient执行httpGet请求并获取响应结果。如果连接超时时间超过了5秒,就会抛出ConnectTimeoutException异常。

socketTimeout:读取超时时间,即从服务器获取响应数据的最长时间,超过此时间则抛出SocketTimeoutException异常。默认值为0,表示无限等待。
示例代码:

RequestConfig requestConfig = RequestConfig.custom()
        .setSocketTimeout(5000) // 读取超时时间为5秒
        .build();

connectionRequestTimeout:从连接池中获取连接的超时时间,超过此时间则抛出ConnectionPoolTimeoutException异常。默认值为0,表示无限等待。
示例代码:

RequestConfig requestConfig = RequestConfig.custom()
        .setConnectionRequestTimeout(5000) // 从连接池中获取连接的超时时间为5秒
        .build();

这个参数指的是从连接池中获取连接的超时时间,在使用Apache HttpClient连接池时,如果连接池中没有可用的连接,就需要等待一段时间来获取连接。如果等待的时间超过了设置的连接请求超时时间,就会抛出ConnectionPoolTimeoutException异常。
下面是一个简单的示例代码,其中使用Apache HttpClient连接池发送一个HTTP GET请求,并设置连接请求超时时间为5秒:

CloseableHttpClient httpClient = HttpClients.custom()
        .setMaxConnTotal(10) // 设置连接池中最大连接数为10
        .setMaxConnPerRoute(5) // 设置每个路由的最大连接数为5
        .build();
HttpGet httpGet = new HttpGet("http://www.example.com");
RequestConfig requestConfig = RequestConfig.custom()
        .setConnectionRequestTimeout(5000) // 设置连接请求超时时间为5秒
        .build();
httpGet.setConfig(requestConfig);
CloseableHttpResponse response = httpClient.execute(httpGet);

在上面的代码中,使用HttpClients.custom()方法创建一个自定义的CloseableHttpClient对象httpClient,并使用setMaxConnTotal()方法和setMaxConnPerRoute()方法设置连接池中的最大连接数和每个路由的最大连接数。然后使用HttpGet构造方法创建一个HTTP GET请求对象httpGet,再使用RequestConfig设置连接请求超时时间为5秒,并将其设置到httpGet对象中。最后使用httpClient执行httpGet请求并获取响应结果。如果连接池中没有可用的连接,并且等待的时间超过了5秒,就会抛出ConnectionPoolTimeoutException异常。

proxy:设置代理服务器地址和端口号。
示例代码:

HttpHost proxy = new HttpHost("127.0.0.1", 8080);
RequestConfig requestConfig = RequestConfig.custom()
        .setProxy(proxy) // 设置代理服务器地址和端口号
        .build();

staleConnectionCheckEnabled:是否检查旧连接是否可用。默认为false,即不检查。
示例代码:

RequestConfig requestConfig = RequestConfig.custom()
        .setStaleConnectionCheckEnabled(true) // 检查旧连接是否可用
        .build();

redirectsEnabled:是否自动重定向。默认为true,即自动重定向。
示例代码:

RequestConfig requestConfig = RequestConfig.custom()
        .setRedirectsEnabled(false) // 不自动重定向
        .build();

relativeRedirectsAllowed:是否允许相对路径重定向。默认为true,即允许。
示例代码:

RequestConfig requestConfig = RequestConfig.custom()
        .setRelativeRedirectsAllowed(false) // 不允许相对路径重定向
        .build();

maxRedirects:最大重定向次数。默认为50。
示例代码:

RequestConfig requestConfig = RequestConfig.custom()
        .setMaxRedirects(5) // 最大重定向次数为5
        .build();

cookieSpec:Cookie策略。默认为CookieSpecs.DEFAULT。
示例代码:

RequestConfig requestConfig = RequestConfig.custom()
        .setCookieSpec(CookieSpecs.STANDARD) // Cookie策略为标准策略
        .build();

contentCompressionEnabled:是否启用内容压缩。默认为true,即启用。
示例代码:

RequestConfig requestConfig = RequestConfig.custom()
        .setContentCompressionEnabled(false) // 不启用内容压缩
        .build();

通过设置RequestConfig中的这些参数,可以对HTTP请求的连接、读取、代理、重定向、Cookie等进行配置和控制,以便满足不同的业务需求。文章来源地址https://www.toymoban.com/news/detail-698870.html

到了这里,关于http RequestConfig配置类中各参数的意思的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Shiro配置类中的各个配置项浅谈

    上文中在落地实践时,对Shiro进行了相关的配置,并未对其含义作用进行详细学习,本章将进一步详解其作用含义。   securityManager()  方法创建一个  DefaultWebSecurityManager  对象,并设置了相关的组件。 DefaultWebSecurityManager  是 Shiro 的  SecurityManager  实现类,用于管理所有的

    2024年02月12日
    浏览(34)
  • git push -u参数是什么意思?

    git push的时候,有时候会用-u参数,有时候不适用。这是为什么呢? branch..merge Defines, together with branch..remote, the upstream branch for the given branch. It tells git fetch/git pull which branch to merge and can also affect git push (see push.default). When in branch , it tells git fetch the default refspec to be marked for merg

    2024年02月01日
    浏览(43)
  • http请求头中的host是什么意思

    Host 是 HTTP 1.1 协议中新增的一个请求头,主要用来实现虚拟主机技术。 虚拟主机(virtual hosting)即共享主机(shared web hosting),可以利用虚拟技术把一台完整的服务器分成若干个主机,因此可以在单一主机上运行多个网站或服务。 举个栗子,有一台 ip 地址为 61.135.169.125 的服

    2024年02月13日
    浏览(47)
  • HTTP代理出现503错误是什么意思,要如何修复?

    在使用HTTP代理的时候,我们常常会遇到各种问题,想要解决,就需要根据返回码来解决。今天我们来说说,遇到HTTP 代理出现 503 服务不可用错误要怎么办,该如何解决呢? 首先,我们要明白,HTTP 代理出现503错误,意味着代理服务器无法连接到目标服务器或目标服务器出

    2024年02月03日
    浏览(52)
  • Java 方法中参数类型后写了三个点?什么意思?

    4、两个list,一个新的,一个旧的,旧列表中可能有新列表中存在的数据,也可能存在新列表中不存在的数据(注:新旧列表中都不存在重复元素) 需要将新旧列表中数据区分成三部分:1、只存在旧列表中的2、只存在新列表中的3、新旧列表中都存在的 可以将旧列表中的元素

    2024年01月18日
    浏览(41)
  • 解锁新技能《spring如何将属性配置文件中的属性绑定到实体类中》

    在springboot中将配置文件中的属性绑定到指定的实体类上可以通过自动化配置的方式实现,也可以通过手动方式从Environment环境变量中取出再赋值给实体类;但是在有些场景下自动化配置这种方案是行不通的,例如:ApplicationListener、ApplicationContextInitializer进行初始化调用时属性

    2024年02月16日
    浏览(53)
  • 深度学习中epoch、batch、step、iteration等神经网络参数是什么意思?

    epoch: 表示将训练数据集中的所有样本都过一遍 (且仅过一遍)的训练过程。在一个epoch中,训练算法会按照设定的顺序将所有样本输入模型进行前向传播、计算损失、反向传播和参数更新。一个epoch通常包含多个step。 batch:一般翻译为“批次”,表示一次性输入模型的一组

    2024年02月10日
    浏览(44)
  • vue项目配置国际化 $t(‘‘)的意思和用法

    vue 项目中 $t(\\\'\\\')直接在html中直接调用这个函数 {{ $t(\\\'login.title\\\') }} $t是引入国际化后,挂到了Vue.prototype上的一个方法,接受一个字符串作为参数 1.main.js中引入vue-i18n 2.浏览器的语言环境不同,相应设置不同的语言配置文件 3.创建不同语言标识对应的文件,以中文环境为例

    2024年02月16日
    浏览(101)
  • apache2配置文件 Require all granted是什么意思

    修改apache2的配置文件 /etc/apache2/apache2.conf,需要增加网站代码的路径,下列配置是什么意思呢 Options - 如果设置了这个选项,表示禁用了指定的功能,这里的 \\\"Indexes\\\" 表示禁用目录列表功能,即当用户访问一个目录时,不会显示该目录下的文件列表。 FollowSymLinks - 如果设置了这

    2024年02月11日
    浏览(45)
  • HTTP参数类型中的Query和Body参数

    在接口中常见到query参数和body参数,那么它对应的传参方式是? ★ query 查询参数 --- params --- route. params .参数 ★ body 请求体参数 --- data ---  route. query .参数 总结 : GET请求 只能传Query参数, POST请求 可以传Query和Body两种形式的参数 Query查询参数 ,将参数拼在请求地址上。

    2024年02月06日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包