问题标签 [apache-httpcomponents]

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 回答
165 浏览

java - 使用黑莓中的 HttpCore

我正在尝试移植一个 android 应用程序以在黑莓 8800 上运行。其中一个类通过 apache HttpCore发出 http 请求。

我收到以下错误:

无法解析类型 java.lang.reflect.Type。它是从所需的 .class 文件中间接引用的

ProjectFoo-BBerry/src/com/projectfoo/ws/rest/ProjectFooClient.java(第1行)

黑莓手机没有反射功能吗?我需要在eclipse中启用什么吗?我没有在 Java 中进行过广泛的编程。

0 投票
3 回答
2378 浏览

java - 在 httpclient 中,将 HttpEntity 转换为字符串的最优雅/正确的方法是什么?

我正在使用Apache httpcomponents Java library获取网页。连接结果后,我得到的是一个HttpEntity,它有一个getContent()返回一个InputStream的方法,还有一个writeTo()写入 OutputStream 的方法。

我想将结果转换为字符串以提取信息。最优雅(和安全)的方法是什么?

一些可能的解决方案:

  • 写入 aByteArrayOutputStream然后使用 String 构造函数将这些字节转换为 String
  • 使用 InputStreamReader 直接从流中读取,并放入 StringBuilder

这两个都感觉有点丑。您会建议选择其中之一或其他东西吗?

0 投票
1 回答
2983 浏览

java - 使用 apache http 组件监控下载进度

我有一些大文件要使用 Apache 的Http 组件下载,我希望能够在我的 Web 应用程序的管理控制台中向用户显示一些进度信息。使用此库监视正在进行的下载的正确方法是什么?我将创建一个单例来管理正在进行的下载,我需要一种方法来检查打开的连接并找出它们在任何给定时间的位置。

0 投票
1 回答
866 浏览

java - 如何使用 httpcore 库从获取请求中获取整个实体

我正在使用 Apache Http-core 库,但我遇到了 httpResponse 消息的实体问题。有时,当我收到带有多个 TCP 数据包的 Http 响应时,由于某种原因,最后一个数据包似乎被丢弃了。用于这个 propuse 的类是这样的:

当我使用 sendGetMessage 方法时,我可以通过 Wireshark 查看所有正确接收的数据包,并使用以下代码:

not always received 具有应有的整个实体。

0 投票
3 回答
6400 浏览

java - 在 Java 中处理下载

我如何能够在 Java 中使用 HttpResponse 处理下载?我向特定站点发出了 HttpGet 请求 - 该站点返回要下载的文件。我该如何处理这个下载?InputStream 似乎无法处理它(或者我可能以错误的方式使用它。)

0 投票
2 回答
2000 浏览

java - 将 Java NIO 用于流水线 Http

通过研究网络,我发现流水线 HTTP 比排队或并行连接更快、更节能(特别是对于移动设备)。然而,通用库的支持似乎很小。就在最近,广泛的 Apache HttpCore 项目通过其 NIO 模块获得了支持。

至少它在维基百科和文档中的一些地方是这样说的。我的问题是,我找不到任何关于如何使用它来发送简单的管道请求的示例或教程。HttpCore NIO 文档和谷歌代码搜索都没有给我任何看起来像 Http 流水线的东西。

你能给我一个简单的例子,说明如何使用这个模块在管道中发送两个 get 并响应两个他们的答案吗?

0 投票
1 回答
2780 浏览

java - 无效的 Content-Length 被发送到服务器?

我正在尝试通过此处记录的方法通过他们的新 API 将照片上传到流行的服务 Dailybooth 。

问题是服务器正在响应:

我用来发送这些数据的代码在这里:

我不知道我做错了什么。

0 投票
1 回答
4612 浏览

java - Apache HttpClient 是否将 java.net.CookieHandler 设置的 Cookie 添加到 Request 中?

我的简单 Apache HttpClient (4.0.1) 客户端应用程序在 main() 方法中向服务器 URL 发出 HttpGet 请求并打印响应。启动时,应用程序在静态块中注册 java.net.CookieHandler 的实现。

在检查服务器端收到的 cookie 时,我发现 HttpClient 发出 GET 请求时服务器没有收到 cookie。

另一方面,当我用普通的 java.net.URL(HTTP_URL).openStream() 替换 Apache HttpClient 时,cookie 由请求上的 CookieHandler 设置并由服务器接收。

是不是 CookieHandler 不能与 Apache HttpClient 一起使用?

代码:

客户端.java

使用 HttpClient(不按请求放置 cookie)

使用 java.net.URL(根据请求设置 cookie)

0 投票
1 回答
2162 浏览

java - 如何在 Android 上使用最新的 HttpComponents 版本?

我使用的是 Android 自带的 HttpComponents 库。我编写了 2 个类来使用 GET 和 POST 发送参数并从服务器接收 InputStream 或 String。一切正常:线程上的每次下载,开始,暂停,恢复......但是今天我同时开始了两次下载,但都没有完成。

我用谷歌搜索了一个解决方案,我发现 Android 带有 HttpCore 4.0-beta2。是的,它很老了。它于 2008 年 7 月 1 日发布,从那时起 Android 就没有更新它……

我重写了我的类,但现在使用 HttpURLConnection,我可以同时下载两个文件。

好的,如果您正在考虑在 Android 上使用 HttpComponents,这对您来说是一个警告。现在我的问题。我想将新版本 4.1 导入我的项目。我已将 jars 添加到构建路径中,但现在如果新 (4.1) 和旧 (beta2, 4.0) 包相同,我该如何使用这些 jars?

谢谢。

已解决
您必须使用 ThreadSafeClientConnManager 创建 DefaultHttpCLinet:

更新:您也可以使用 AndroidHttpClient。使用此类,您无需使用 ThreadSafeClientConnManager

更多信息

0 投票
1 回答
1914 浏览

java - 使用 HttpCore 实现自定义 HTTP 方法

我是 Java 新手,希望对 Apache HttpCore 库有一些指导。

我编写了一个简单的服务器,并希望实现一些自定义 HTTP 方法。我已经浏览了几次文档,但无法弄清楚。

看起来 501 Not Implemented 在HttpService.doService()中引发,但覆盖该方法不起作用。我的请求处理程序没有被调用。

任何帮助将不胜感激。

谢谢。

这是我所掌握的要点:

回复:

除非方法是 GET、POST 等,否则请求行不会写入 System.out。

解决方案:我需要实现一个 HttpRequestFactory。例如: