问题标签 [apache-commons-httpclient]

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 投票
2 回答
4147 浏览

java - Java HttpClient 或 PostMethod 将返回数据截断为 64k

我正在使用 Apache Commons HttpClient 从服务器中获取一些数据。我的问题是返回的 XML 数据总是被截断为前 64k。我希望这可能只是对相关对象设置限制的情况,但显然不是 - 或者至少,我找不到有关这种方法的任何信息。我假设这是一个客户端问题,因为服务器属于另一家公司,并且可能会将数据很好地提供给其他所有人。

有任何想法吗?

顺便说一句,我的代码非常简单:

仅供参考,使用 InputStreams 而不是 getResponseBodyAsString() 方法的以下代码也会发生同样的事情。

那么,您知道某处是否设置了限制吗?字符串响应总是64k 的事实似乎表明必须有。但是哪里?!

谢谢

阿拉斯泰尔

0 投票
0 回答
671 浏览

java - commons-httpclient 在执行方法后从 Host 标头中删除了端口 80

我使用指定的主机和端口创建了一个 GET HTTPMethod,并从 Httpclient.executeMethod() 执行它。但是,当主机收到它时,该端口已从 HTTP 请求中的主机标头中截断。

HttpMethod执行前的Host头信息如下: User-Agent: Me Host: stackoverflow.com:80

主办方收到时:

用户代理:Jakarta Commons-HttpClient/3.1 主机:stackoverflow.com

我已经看到可以在执行之前在 HTTPClient 中设置 User-Agent 的帖子。但是,我已经通过 HostConfiguration 对主机进行了尝试,但没有运气。任何人以前都看到过这个问题并解决了它,这样主机就不会改变?

当我使用其他 httpclient 包或点击不同的端口时,这不会发生。

找到了答案:如何在使用 Apache commons HttpClient 时覆盖请求中的“Host”标头

0 投票
1 回答
17890 浏览

java - 从 HttpClient 3.x 迁移到 4.x

我们有一些使用 commons-httpclient-3.1 编写的代码,需要转换为 4.1。我只是对此有点熟悉,现在正在阅读 4.1 httpclient 教程

我在这里看到了一些帖子(例如从 HttpClient 3 转换为 4,但这是关于特定构造的)。似乎应该有一些文档/示例显示如何将 3.x 的使用升级到 4.x ?

一个具体的例子:替换使用 org.apache.commons.httpclient.HttpState

0 投票
3 回答
1362 浏览

java - 如何让 Apache Http 客户端在超时后恢复等待响应?

我使用executeMethodApache Http 客户端,它会阻塞直到它收到服务器响应。我可以设置超时,但是一旦超时到期,客户端似乎无法继续等待响应。

我可以让 Apache Http 客户端在超时后恢复等待响应吗?

0 投票
1 回答
975 浏览

java - Commons HttpClient getResponse 需要很长时间 200 秒

我在这种方法中没有改变任何东西,但突然它需要很长时间。下面的代码示例会产生此错误。

编辑:我在单个 java 应用程序中提取了该方法并尝试加载文件并且我有相同的超时。他通过这个循环 HttpMethodBase:691 的 3 或 4 时间,他在我的本地电脑上停止了 500 秒,并且线程正在休眠。睡觉后下一行是outstream.close();

编辑:如果您想在家尝试,这是示例代码:) (httpClient 3.1)

0 投票
2 回答
2100 浏览

java - 如何重用httpclient连接来获取多个小文件

我正在使用 httpclient 从服务器连续下载多个小文件。所以我想重用httpclient连接以避免花费大量时间来分配新连接。

而且我已经有一些客户端代码尝试重用连接,并将现有连接的空闲超时设置为 3 分钟。

然而,来自服务器的响应总是包含“Connection: close[\r][\n]”,httpclient 库在遇到此类标头后立即释放连接。

如何让 httpclient 忽略来自服务器的响应,或者我发布的哪个标头可以让服务器不再返回这样的关闭标头?

0 投票
2 回答
2562 浏览

java - Java HTTP NTLM 实现差异

链接详细介绍了各种 http 客户端 java 实现。我正在寻找任何可以提供有关其 NTLM 协议实现差异的信息的链接。

在其中一台 Windows 机器上,我发现 commons-http 客户端 3.1 实现失败并出现授权错误(http 状态代码 401),但 java 1.5 实现成功。由于 NTLM 身份验证协议的 java 1.5 实现不是开源的,因此我无法比较这两种实现以了解可能出了什么问题。

更新 1

我知道公共 http 客户端不支持 NTLM v2 的事实。此链接提供了各种 java http 客户端实现之间的比较,并提到 apache http 客户端提供了NTLM 协议的部分实现。它没有详细说明它。

在进一步解决问题时,我还发现此链接提供的 NTLM 实现结合HTTPClient可以在 Windows 机器上运行(我上面提到的 commons http 客户端实现不起作用)。

更新 2

通过嗅探数据包(使用wirehack),我意识到commons http 客户端3.1 ntlm 协议实现不会在Type 3 消息中生成NTLM 响应。这是由 JDK 实现生成的。如果 NTLM 响应数据为空,您是否知道任何表明身份验证将失败的服务器/客户端设置?(因为我们面临的身份验证失败只能在一台机器上重现。身份验证在其他地方成功。)

0 投票
1 回答
13289 浏览

java - Apache HttpClient 4 和 JavaScript

我使用 Apache HttpClient 访问网页。我想点击一个链接,但该链接是 javaScript,我如何处理点击一个 javascript 链接并遵循 url 重定向?

示例 javascript 和 html 代码:

0 投票
1 回答
1189 浏览

java - 如何使用 HttpClient 发送 GWT-RPC 请求?

我正在使用 Apache HTTPClient API 来发送 HTTPRequests,到目前为止,它可以处理标准请求。现在我想发送一个 GWT-RPC 请求并显示响应,但我总是从 GWT-RPC 服务器收到以下错误:

实际上,我必须在请求中发送以下数据:

但我不知道怎么做。

当我从 FireBug 中检索请求代码时,我在 post 区域中找到了上述数据作为来源。

0 投票
3 回答
16879 浏览

java - HttpClient:禁用分块编码

我正在使用 Apache Commons HttpClient 和 Restlet 来调用一个安静的 Web 服务。不幸的是,我的服务器(基于 Ruby on Rails)不喜欢Transfer-Encoding: chunkedHttpClient 默认使用的。

有什么方法可以禁用客户端对 POST 的分块编码的使用?