问题标签 [java-http-client]

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

java - 上传时如何使用复用http2功能

上传多个文件时,使用多路复用 http2 功能应该会显着提高性能。

Java 有一个本地支持 HTTP/2 协议的 httpclient,所以考虑到我尝试编写代码以供自己理解。

这项任务似乎并不像我最初想的那样容易,或者另一方面,我似乎无法找到能够在上传中使用多路复用的服务器(如果存在)。

这是我写的代码,有人有想法吗?

0 投票
0 回答
208 浏览

java - java.net.http 客户端超时和连接管理/地址解析

我们在 Spring Boot 中通过以下方式定义了一个 HTTPClient bean:

我们在请求和连接本身上都遇到了间歇性超时。

我们已经对网络活动进行了故障排除,并意识到我们正在联系的服务器作为动态 IP 范围,有效地更改了我们正在联系的特定主机名的地址。

使用单个 http 客户端实例会导致发生这种问题吗?自定义执行器会帮助解决这种情况吗?

网上没有太多关于连接池或管理连接的信息(除非它用于 apache httpclient)

0 投票
2 回答
955 浏览

java - 为什么 `HttpClient.newHttpClient()` 不起作用?

我尝试学习使用HTTPClient。但HttpClient client = HttpClient.newHttpClient();不起作用。

IntelliJ我更新了我的编译器以使用 Java 版本 12 并且pom.xml我将java.version属性设置为 12。

在我写HTTPClient它之后import sun.net.www.http.HttpClient,然后newHttpClient()方法不起作用。对于这种方法,我需要import java.net.http.HttpClient;

这是我的pom.xml

0 投票
1 回答
1078 浏览

java - java.net.HttpClient 状态为 CLOSE_WAIT 的连接泄漏

我们正在使用 openJDK11.0.6 java.net.http HTTP (HTTP1.1) 客户端从网站获取内容。经过长时间的执行,我们注意到性能下降。即使应用程序什么都不做,CPU 也会 100% 使用。我们能够确定它来自很多应用程序泄漏的套接字(CLOSE-WAIT 状态)。

这里已经有一些关于它的问题(比如这个),但是所有提交的错误都应该被修复并向后移植到 java 11.0.6。

我已经能够将该错误重现到github 上的 minalist 项目中。似乎只有当客户端从服务器收到 204 NO-CONTENT 时才会发生这种情况。

如果我们运行它:

OpenJDK 错误(已修复):

0 投票
1 回答
1871 浏览

java - 当我需要等待用户单击我的应用程序中的链接时,如何防止`java.IOException:HTTP1.1 header parser received no bytes`?

如何等待我的服务器更新?我正在设置我的HttpServer并且可以从我自己的状态中获得响应,我createContext handle使用我的GET方法传递给 ,但是当我需要等待用户(我)单击 Spotify auth 链接以重定向回我的服务器时 -

java.util.concurrent.ExecutionException: java.io.IOException: HTTP/1.1 header parser received no bytes

如果我手动设置标题字符串,我GET将返回正文。我已经尝试过serverSocketCompleteableFuture async(request, HttpResponse.BodyHandlers.ofString()来自https://openjdk.java.net/groups/net/httpclient/recipes.html#asynchronousGet)并且仍然得到上述异常。

在 Chrome 中,当我打开http://localhost:8080时,Spotify 代码就在那里。

我想我需要循环client.send(request, HttpResponse.BodyHandleers.ofString()直到服务器状态代码更新,或者设置等待时间?

这是我一直在测试的时间。

我正在关注 Hyperskill.org 项目。这就是该阶段完成后代码的行为方式。

0 投票
2 回答
1786 浏览

java - Java WebSocket 消息限制

我正在尝试在简单的 Java App(使用java.net.http.WebSocket类)和远程google-chrome运行之间创建通信google-chrome --remote-debugging-port=9222 --user-data-dir=.

发送和接收小消息按预期工作,但对于较大的消息(16kb)存在问题。

这是java源代码的一部分:

这是堆栈:

我已经通过使用puppeteer(nodejs library)尝试了基本相同的方法,它按预期工作。

我在网上找不到有关此问题的任何资源。我的例子中有什么我遗漏的吗?


这是简单示例的网址: https ://github.com/zeljic/websocket-devtools-protocol

0 投票
1 回答
292 浏览

java - java.net.http HttpClient 进入循环 wrapBuffer 返回 Status = OK HandshakeStatus = NEED_WRAP

我无法将它发布到 JDK 错误报告中,因为我无法在我的公司基础设施设置之外重现它,但也许有人遇到过类似的事情。

Java版本: 11.0.6

构建HttpClient的代码:

我的请求如下所示:

使用:-Djdk.internal.httpclient.debug=true

有趣的是,第一次获取数据是成功的,然后进入循环并永远旋转(?)。日志的后半部分是一切发生的地方。

有没有人遇到过这个?我知道它的Java HttpClient有问题,因为当我将实现交换为 RestTemplate(内部使用 Apache HttpClient)之类的东西时,它工作正常。

0 投票
1 回答
525 浏览

java - 如何使用 Java 11 标准 HTTPClient 测量 ASYNC 发送 HTTPRequest 的经过时间?

在一种方法中,我创建并异步发送一些 HTTPRequest,并将 CF 添加到列表中:

稍后,在另一种方法中,我每隔 1 秒定期检查一些异步发送的 HTTPRequest 是否已经收到:

问题是,如何测量准确的请求时间?

0 投票
2 回答
75 浏览

java - 记录整个 HttpRequest 的最佳方法

我想删除整个问题

0 投票
1 回答
137 浏览

java - 如何释放http连接

我在我的应用程序中调用以下代码。第一个请求总是正常工作。我的问题是没有发送每个后续请求,当我指定超时值时,它会超时。否则它似乎无休止地等待。似乎第一个请求会阻止每次后续尝试的连接。如何确保再次正确释放连接?也许一些标题?也许某些属性(默认值用于 http https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/net/doc-files/net-properties.html)?

使用:java.net.http.HttpClient (AdoptOpenJDK 11.0.7_10)