问题标签 [apache-httpclient-5.x]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
415 浏览

java - Apache Http 客户端执行请求而不发送封闭实体

我确实有以下情况:

1) 客户端通过套接字向服务器发送带有封闭实体的 HTTP 请求。

2)服务器将封闭实体上传到另一个位置,我们称之为存储。

我只需要实现服务器。

到目前为止,我能够使用Apache HTTP 组件库来实现它,使用类似的东西:

到目前为止,一切都很好。问题是,存储服务器需要身份验证。当服务器发出第一个请求(通过 Apache Http Client API)时,存储响应 407 Authentication Required。Apache Http 客户端进行初始握手,然后重新发送请求,但现在没有实体,因为它已被第一个请求消耗。

一种解决方案是从客户端缓存实体,但它可能非常大,超过 1 GB。

问题是否有更好的解决方案,例如仅预发送请求的标头?

0 投票
1 回答
1298 浏览

java - Apache HttpClient v5.0 不在 Windows 上使用 NTLM 进行身份验证

我正在尝试通过这样的 NTLM 代理发出请求:

但它失败了,这是日志:


环境

  • 操作系统:Windows 10
  • JRE:采用OpenJdk v11
  • 代理类型:NTLM (Wingate)

问题上面的代码有问题吗?


Obs相同的代码适用于 Apache Http Client v4.5.12

0 投票
1 回答
241 浏览

apache - 是否可以从 HttpClient-5.x 中止 HttpAsynClient 中的 http 请求 [GET、POST 等]?

我正在使用 org.apache.hc.client5.http.impl.async.HttpAsyncClients.create() 为我的 HTTP/2 请求创建 org.apache.hc.client5.http.impl.async.CloseableHttpAsyncClient。我正在寻找一些功能来从套接字通道读取一些数据后中止请求。

我尝试使用 Future 实例中的 cancel(mayInterruptIfRunning) 方法。但是在中止它之后,我无法获得响应标头和下载的内容。

有没有其他方法可以通过 httpclient-5.x 实现这一点?

提前致谢。

0 投票
1 回答
578 浏览

apache-httpclient-5.x - 如何从 Apache HttpClient5 的 HttpResponse 中获取响应体?

在版本 4 中获取状态码和响应正文非常简单:

但是现在在 httpclient5 中,由于某种原因,无法从 HttpResponse 中获取与响应正文相关的任何内容。对此非常困惑。如果我在他们的快速入门( https://hc.apache.org/httpcomponents-client-5.0.x/quickstart.html )中遵循示例 3,它建议我创建一个 CloseableHttpClient、一个 HttpGet 和一个 CloseableHttpResponse,但这些都不允许你设置连接超时。试图找到两全其美的选择,但这里的选择似乎有点混乱。

0 投票
1 回答
335 浏览

apache-httpclient-5.x - Apache HttpComponents HttpClient 5.0 - Kerberos SPNEGO 客户端

我正在尝试将我的 HttpClient 4.x 代码移植到 5.x

但是在 5.x 中不再有 AuthSchemeProvider,并且 SPNegoSchemeFactory 有一个不同的构造函数:-/

0 投票
0 回答
73 浏览

java - Apache HttpClient 5 作为 Google Cloud Storage API 中的传输选项

在 Java 中使用Google Cloud Storage API时,我们可以使用构建器创建一个Storage实例,同时指定一些传输选项,如下所示:

是否可以使用现有实例 Apache HttpClient 版本 5 作为传输选项?

0 投票
0 回答
428 浏览

apache-flink - HttpAsyncClient HC5 请求超时

我们正在检查使用 HttpClient 5.0 中的 HttpAsyncClient,它将在 Flink AsyncFunction 中创建。要求如下:

  1. 客户端是根据请求创建的;
  2. SSL 证书应该在运行时从文件中加载;
  3. 如果发生延迟的特定次数失败,则应重试请求
    这是测试的一部分:

DefaultHttpRequestRetryStrategy 被覆盖以允许在 SocketTimeout 异常的情况下重试。

在对响应延迟为 1200 毫秒的 MOCK HTTP 服务器进行重试策略测试时,我发现当我预期所有请求都失败时,部分请求成功(因为超时设置为 1000 毫秒)。例如,我同时调用了上述代码 10 次,其中 3 次请求成功。这是否意味着响应超时可以超过配置?当我将 setMaxtTotal 发送到连接管理器(cm.setMaxTotal(100))时,所有请求都按预期失败。为什么增加连接会解决问题(为每个请求创建连接管理器,它不会被新请求/客户端重用)?这是解决超时问题的正确解决方案吗?

PoolingAsyncClientConnectionManager 的使用是否符合我们的要求?如果不是,如何以其他方式配置 SSL 上下文和重试策略?

谢谢!

0 投票
1 回答
411 浏览

java - 为什么使用 Apache HttpClient5 发出的 http 请求在使用抢先 BASIC 身份验证时会收到 http 404 错误

我需要有关此处描述的 apache http 5 客户端示例的帮助。我的目标是做与 CURL 完全相同的事情:

我修改了示例以执行 POST 而不是 GET:

我的服务器端代码是由 JHipster 生成的 Spring Boot App,处理请求的控制器是这样的:

执行后 _sendFile 代码收到 HTTP 错误 404。我打开了 httpclient 5 的日志记录,它注销了与服务器端的正确连接,它以 404 响应:

一开始我认为spring boot端的控制器是错误的,但是我用cURL尝试了同样的请求,它以成功结束:

我看到 apache http 客户端附加字符编码的内容类型存在差异。现在我想知道:

  1. 我应该强制使用 utf8 字符编码吗?如何?或者
  2. 我的 apache httpclient 帖子示例中还有其他问题
0 投票
1 回答
80 浏览

httpclient - HttpClient5.0,如何在异步模式下使用gzip?

HttpClient5.0.1,如何在异步模式下使用gzip?官方文档上没有使用异步方式使用gzip压缩的例子。

0 投票
0 回答
100 浏览

apache-httpasyncclient - HttpAsyncClient 5 | 处理 Gzip 内容作为响应的最佳方法

链接我们了解到这automatic content decompression.是不支持的。
那么下面的配方是处理 gzip 内容的好方法吗?