问题标签 [jetty-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.
json - 如何使用 Jetty HttpClient 解析 JSON 和 urlencoded 响应?
请推荐使用Jetty HttpClient时解析 urlencoded 或 JSON 编码响应的最佳方法。
例如,我创建了以下实用程序类用于发送 ADM 消息 并BufferingResponseListener
在其中使用UrlEncoded.decodeUtf8To
(用于解析承载令牌响应)和JSON.parse
(用于解析消息发送响应):
上面的类工作正常,但是看到有带InputStream in
参数的 Jetty 方法,比如
和
JSON.parse(java.io.InputStream in)
我想知道是否有更聪明的方法来获取和解析......也许比BufferingResponseListener
?
换句话说,我的问题是:
如何使用上述解析方法的“流式”版本HttpClient
?
java - Jetty HttpClient 在 SIGTERM 上抛出 AsynchronousCloseException
我有一个 HttpClient 来访问 REST 服务,现在我正在实现软关闭,这意味着当进程关闭时(kill
在 linux 上使用一个简单的命令)它应该停止接收新任务并完成它正在处理的所有任务。
我的 HttpClient 已注册侦听器,因此我可以处理 REST 服务器响应。
软关机是通过使用 ShutdownHook 实现的,但这并不是问题所在。
在测试解决方案时,我偶然发现了这个异常:
发生这种情况是因为我发送了 SIGTERM 信号,而一些 HttpClient 请求被发送到 REST 服务器,但侦听器正在等待响应并且连接中断。
如何防止 HttpClient 终止当前连接,直到它们全部完成?(可能尊重超时)。
更新:显然这是 Jetty 本身不支持的东西(https://github.com/eclipse/jetty.project/issues/1445)。如果对于 HttpClient 上的每个目的地我检查其 connectionPool 是否为空,那可以吗?如果我做对了,这意味着该特定池不再有打开的连接。
java - 用于 Http2 的仪表 Jetty HttpClient
我正在使用 Jetty 的 http2client 对我的服务器进行同步调用,我的示例程序如下,
客户端部分
请求部分
我需要测量指标,例如每个目的地的连接数、每个连接的请求数、失败的事务数等。
我的应用程序在限制使用wireshark 或任何其他tcp 工具的服务器中运行。所以我需要在java中获取这些数据。启用码头的调试日志是不可行的,因为它会写入 GB 的数据。
有没有办法通过一些 util 或 java 反射来获取这些指标?
提前致谢
java - 如何为多个用户隔离 Jetty HttpClient?
我正在使用 Eclipse Jetty HttpClient 将 POST 请求发送到服务器,以进行负载测试。
TL;DR:有没有办法使用单个 HttpClient 实例和多个用户凭据集到单个目标 URL?
为此,我需要以单独的用户身份登录到被测服务器。尽管 HttpClient 是线程安全的,但由于其共享身份验证存储,它似乎并不支持单个实例。
解决方案似乎很简单,只需为每个用户或每个线程使用一个 HttpClient。
这可以正常工作,除了 HttpClient 为每个实例创建多个线程(似乎是 5 到 10 个),因此我的负载测试需要一个非常大的堆,否则它会在尝试创建新线程时开始抛出 OutOfMemory 异常。
例如,在这个非常基本的测试中,第一组凭据用于所有后续 POST:
现在,我意识到在这个人为的测试中我可以在循环之间调用httpClient.getAuthenticationStore().clearAuthenticationResults()
,httpClient.getAuthenticationStore().clearAuthentications();
但是这对我的实际测试不起作用,我有多个线程同时发布。
我是否坚持为每个用户使用单独的 HttpClient 实例?
感谢您的任何想法!
java - Jetty HttpClient 代理身份验证配置 (NTLM)
我们构建了一个 Java 客户端应用程序,该应用程序连接到需要 NTLM 身份验证的代理后面的 API。该应用程序使用 Jetty HttpClient。
不幸的是,身份验证失败并出现 407
我们尝试使用 SPNEGOAuthentication-class 进行身份验证
但没有成功(407)。我们还尝试覆盖 DefaultAuthenticator。
任何提示我们可能做错了什么或其他建议?
提前问候和感谢,托马斯
jetty - Jetty HttpClient v11.x 中的 URI 模板支持
我刚刚开始使用 Jetty HttpClient v11,它很棒。但是,似乎缺少对路径参数或路由参数的固有支持,尽管它有一种添加查询参数的好方法。
路径参数示例:
不确定它是否在那里,我错过了它,但我正在寻找一种方法来实现它。因此,如果有人已经这样做并为此创建了一个经过良好测试的小型(零外部依赖)实用程序/库,那么请向我指出。
更新:
只是在这里提供一个上下文,就像我想要实现的目标一样。
考虑这个 JAX-RS 资源方法。
我们可以使用注解@PathParam 获取{id} 的值。
同样,我想在我在 Jetty HttpClient 之上编写的 RestClient 中提供一种方式,让消费者可以做一些事情。
我只是在 HttpClient 中寻找相同的东西,我知道这可以在将 URI 传递给这里的 newRequest 方法之前完成。
java - 收到响应后 Jetty HttpClient 关闭连接
我正在使用 Jetty 的 (10.0.7) HttpClient 发送同步请求。
有没有办法禁用连接池以回退到 HTTP/1.0 行为(每个请求创建连接,然后关闭)
我仔细阅读了文档,并通过 newSelectorManager() 实现了我自己的 ClientConnector 类,该类具有用于 endPointOpened / endPointClosed 的钩子。
我知道可以发送 http 标头“连接:关闭”,但我不想依赖服务器关闭连接,而是在客户端关闭它。