问题标签 [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.

0 投票
1 回答
1782 浏览

java - 使用jetty httpclient的jar依赖

我想使用码头httpclient(在 netbeans 中),但 jar 依赖项的数量最少。我知道我可以将所有 jar 从 jetty lib 文件夹导入到我的项目中,但我想知道最少的依赖项是多少,以及你是如何找到这个的?我们有找到 jar 依赖项的工具吗?

0 投票
1 回答
1874 浏览

java - 将 HTTP 管道与 Jetty HTTPClient 一起使用

我正在尝试弄清楚如何使用 HTTPClient (org.eclipse.jetty.client.HttpClient),以便它将通过管道传输 HTTP 请求。

我尝试以异步模式创建一些 ContentExchange 实例并为每个实例应用 send() 方法,但每个 HTTP 请求在发送下一个请求之前都等待它的响应。

您能否提供此案例的代码片段?

0 投票
1 回答
1425 浏览

java - 使用具有可用()方法返回相对较小值的流时,Jetty HttpClient 在 POST 上崩溃

我使用 Jetty HttpClient 发送 POST 请求,其正文约为几 MB。我希望 Jetty 尽快开始流式传输请求,所以我使用setRequestContentSource方法。

问题是,当我使用任何带有 available() 方法的输入流返回相对较小的值(如 4096)时,Jetty 有时会崩溃并出现以下错误:

这是不确定的,似乎将 Thread.sleep(10) 放在流的 read() 方法中可以解决问题。使用管道流时也可以修复此错误。这三件事让我觉得这是某种竞赛条件。

我想这是 Jetty 中的错误,但我想确定在这种情况下我是否没有做任何奇怪的事情。

0 投票
0 回答
443 浏览

java - 在 Jetty HttpClient 中访问对等证书

我正在使用 Jetty HttpClient 发出 HTTPS 请求。在建立 SSL 连接之后,在发送数据之前,我想验证我正在与预期的服务器交谈。基本上,如果我想向 www.foo.com 发送请求,那么我想验证服务器是否具有该域名的证书。

实现这一点的一种方法是创建我自己的TrustManager并将其用于创建SslContextFactory提供给HttpClient. 信任管理器中可用的回调是:

在所有情况下,我都可以访问证书,但不能访问原始请求(我需要原始域名)。

想到的第二个选项是从HttpExchange我用来发出请求的后代访问对等证书。例如,调用后HttpClient.send(exchange),我可以访问对等证书并执行验证。但是,似乎无法从交换中访问 SSL 信息(对等证书SSLEngine或对象)。SSLSocket

最重要的是,HttpClient 本身似乎没有对证书内容进行任何验证。这意味着我没有地方可以插入我的验证逻辑,并且 HttpClient 容易受到 DNS 欺骗攻击(有关该主题的讨论,请参见http://www.cs.utexas.edu/~shmat/shmat_ccs12.pdf)。

谁能提示我可以在哪里插入服务器名称验证?

0 投票
1 回答
1585 浏览

ssl - Jetty HttpClient 9 (9.0.0.M5) SSLContextFactory 的 TrustAll 标志不起作用?

我正在使用 Jetty HttpClient 9 进行一些简单的网络爬取,但我似乎无法使其与 HTTPS 一起使用。以下发出同步 GET 请求的简单代码...

创建 SslContextFactory 时在哪里使用 TrustAll 标志会导致以下异常,该异常似乎与 SSL 相关...

我在这里做错了什么?这是让 Jetty HttpClient 信任所有 SSL 连接的正确方法吗?如果没有,正确的方法是什么?

0 投票
2 回答
621 浏览

java - 使用 Jetty 9 从 HttpClient 获取响应时出错

我想使用 Jetty 和 HttpClient 类从外部服务器获取内容。现在我想将获得的响应复制为HttpServletResponse并返回给客户端(浏览器)。我尝试了一些东西,但无法成功。我想我没有通过内部课程。

这是我的代码:

错误在于分配response为:

无法分配最终的局部变量 response,因为它是在封闭类型中定义的

如果我不使用final参数,也会出现错误,

不能在不同方法中定义的内部类中引用非最终变量响应

原因是什么?

0 投票
3 回答
148 浏览

java - Jetty HTTPClient 包括

我正在尝试使用 Jetty 连接到使用 websocket 的 HTTP 服务器。问题是编译器无法解析类 HTTPClient。我在stackoverflow上搜索过,我找到了一个解决方案,但有用资源的链接不再可用......我应该包含什么JAR来运行这个例子? http://wiki.eclipse.org/Jetty/Tutorial/HttpClient

该页面没有说明...谢谢

0 投票
0 回答
197 浏览

ssl - Jetty HttpClient 的 SSL 重新协商失败

我有一个基于 Jetty 的 ProxyServlet 的代理 servlet,当尝试将请求代理到远程服务器时,由于代理的 HttpClient 中的 SSL 重新协商失败,它会看到间歇性的 502 响应。Wireshark 跟踪显示 SSL 握手已完成,但随后 HttpClient 通过发送另一个客户端 Hello 数据包重新开始协商。远程服务器(在这种情况下为 F5)配置为不允许 SSL 重新协商,因此它关闭连接,导致代理请求失败。

我在配置代理的 HttpClient 时尝试调用 SslContextFactory.setRenegotiationAllowed(false),但这只会导致请求在代理内部失败。调试级别日志记录产生如下所示的输出。请注意“Renegotiation Denied”消息,该消息会导致流关闭,从而在随后尝试将代理请求写入输出流时导致 Connection Closed 异常。

那么是什么导致 HttpClient 认为它需要执行 SSL 重新协商,我可以做些什么来解决这个问题呢?更改 F5 的配置以允许 SSL 重新协商不是一种选择。问题是间歇性的,并且可重复性是可变的,这表明可能存在时间组件。

我在 Java 1.8.0_66 上使用 Jetty 9.2.13.v20150730。

2015-10-26 15:23:04,987 | DEBUG | vletModel-46-263 | SslConnection | 73 - org.eclipse.jetty.util - 9.2.13.v20150730 | SslConnection@276888f4{NEED_WRAP,eio=-1/-1,di=-1} -> HttpConnectionOverHTTP@76f2815f(l:/9.32.133.96:51386 <-> r:mail.notes.collabservdaily.swg.usma.ibm.com/9.70.230.131:443,closed=false)[HttpChannelOverHTTP@44d24828(exchange=HttpExchange@3284d378 req=TERMINATED/null@null res=PENDING/null@null)[send=HttpSenderOverHTTP@74d58ca9(req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator{s=START}],recv=HttpReceiverOverHTTP@501e585d(rsp=IDLE,failure=null)[HttpParser{s=START,0 of 0}]]] fill enter 2015-10-26 15:23:04,987 | DEBUG | vletModel-46-263 | ChannelEndPoint | 73 - org.eclipse.jetty.util - 9.2.13.v20150730 | filled 1006 SelectChannelEndPoint@57eceb70{mail.notes.collabservdaily.swg.usma.ibm.com/9.70.230.131:443<->51386,Open,in,out,-,-,15/30000,SslConnection}{io=0,kio=0,kro=1} 2015-10-26 15:23:04,987 | DEBUG | vletModel-46-263 | SslConnection | 73 - org.eclipse.jetty.util - 9.2.13.v20150730 | SslConnection@276888f4{NEED_WRAP,eio=1006/-1,di=0} -> HttpConnectionOverHTTP@76f2815f(l:/9.32.133.96:51386 <-> r:mail.notes.collabservdaily.swg.usma.ibm.com/9.70.230.131:443,closed=false)[HttpChannelOverHTTP@44d24828(exchange=HttpExchange@3284d378 req=TERMINATED/null@null res=PENDING/null@null)[send=HttpSenderOverHTTP@74d58ca9(req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator{s=START}],recv=HttpReceiverOverHTTP@501e585d(rsp=IDLE,failure=null)[HttpParser{s=START,0 of 0}]]] filled 1006 encrypted bytes 2015-10-26 15:23:04,987 | DEBUG | vletModel-46-263 | SslConnection | 73 - org.eclipse.jetty.util - 9.2.13.v20150730 | SslConnection@276888f4{NEED_WRAP,eio=0/-1,di=977} -> HttpConnectionOverHTTP@76f2815f(l:/9.32.133.96:51386 <-> r:mail.notes.collabservdaily.swg.usma.ibm.com/9.70.230.131:443,closed=false)[HttpChannelOverHTTP@44d24828(exchange=HttpExchange@3284d378 req=TERMINATED/null@null res=PENDING/null@null)[send=HttpSenderOverHTTP@74d58ca9(req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator{s=START}],recv=HttpReceiverOverHTTP@501e585d(rsp=IDLE,failure=null)[HttpParser{s=START,0 of 0}]]] unwrap Status = OK HandshakeStatus = NEED_WRAP bytesConsumed = 1006 bytesProduced = 977 2015-10-26 15:23:04,988 | DEBUG | vletModel-46-263 | SslConnection | 73 - org.eclipse.jetty.util - 9.2.13.v20150730 | SslConnection@276888f4{NEED_WRAP,eio=0/-1,di=977} -> HttpConnectionOverHTTP@76f2815f(l:/9.32.133.96:51386 <-> r:mail.notes.collabservdaily.swg.usma.ibm.com/9.70.230.131:443,closed=false)[HttpChannelOverHTTP@44d24828(exchange=HttpExchange@3284d378 req=TERMINATED/null@null res=PENDING/null@null)[send=HttpSenderOverHTTP@74d58ca9(req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator{s=START}],recv=HttpReceiverOverHTTP@501e585d(rsp=IDLE,failure=null)[HttpParser{s=START,0 of 0}]]] renegotiation denied 2015-10-26 15:23:04,988 | DEBUG | vletModel-46-263 | SslConnection | 73 - org.eclipse.jetty.util - 9.2.13.v20150730 | SslConnection@276888f4{NEED_WRAP,eio=-1/-1,di=977} -> HttpConnectionOverHTTP@76f2815f(l:/9.32.133.96:51386 <-> r:mail.notes.collabservdaily.swg.usma.ibm.com/9.70.230.131:443,closed=false)[HttpChannelOverHTTP@44d24828(exchange=HttpExchange@3284d378 req=TERMINATED/null@null res=PENDING/null@null)[send=HttpSenderOverHTTP@74d58ca9(req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator{s=START}],recv=HttpReceiverOverHTTP@501e585d(rsp=IDLE,failure=null)[HttpParser{s=START,0 of 0}]]] fill exit

0 投票
1 回答
286 浏览

java - 将 Jetty HttpClient 绑定到网络接口卡

我将在具有两个网络接口卡的机器上使用 Jetty HttpClient,我希望能够将 Jetty HttpClient 强制(绑定)到其中一个 NIC,这可以通过 Jetty HttpClient 实现吗?

0 投票
1 回答
202 浏览

java - 如何为 SWT 浏览器和 Jetty HttpClient 设置相同的 CookieStore

由于 ajava.net.CookieStore在 中管理 cookie org.eclipse.jetty.client.HttpClient,因此我想与 SWTBrowser小部件共享 cookie。

HttpClient 和 Browser 都是 Eclipse 技术。有没有办法拥有相同的 cookie 存储?