gpt4 book ai didi

java - 如何创建持久的 https 连接

转载 作者:可可西里 更新时间:2023-11-01 17:34:34 27 4
gpt4 key购买 nike

我对 Java 及其所有的优点还很陌生。

使用 HttpsUrlConnection,我可以毫无问题地执行大多数 REST 操作。但是,我该如何着手创建持久的 Https 连接?我需要此连接以获取来自服务器的异步消息。是否有仅使用 java.net 包的简单 java 解决方案?我不是在寻找优雅的解决方案,只是简单而有效的东西。

这是我到目前为止所拥有的,似乎无法从服务器接收到任何东西。我得到了 200 状态的响应,但之后什么也没有。我确实验证了服务器实际上正在发送异步消息。我可以使用不同的工具接收它们。 (使用带流的 python 请求)

在此代码之前,我已经成功登录并获得了所有必需的 cookie 和 authToken。 Cookie 管理器已启用。 additionalAuthToken(conn) 负责添加所需的授权内容。这被证明在其他 REST 调用中有效,所以我不怀疑授权是问题所在。同样,如果授权是问题所在,服务器将不会返回 200。

    URL obj = new URL(url);
HttpsURLConnection conn = (HttpsURLConnection) obj.openConnection();
conn.setRequestProperty("Connection", "keep-alive");
conn.setRequestMethod("GET");
additionalAuthToken(conn);


conn.setDoOutput(true);
conn.setDoInput(true);

if (conn.getResponseCode() != 200) {
throw new RuntimeException("Failed : HTTP error code : "
+ conn.getResponseCode());
}

System.out.println(url);
System.out.println(conn.getResponseMessage());

BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
while( true ) {

String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println(inputLine);
}
Thread.sleep(100);
System.out.println("Go around");
}

这可能吗?如果没有,您对实现持久 https channel 有何建议?我从谷歌搜索结果中听说过 netty 和其他一些。现在,我真的希望有一个简单的 java.net 解决方案,而不需要另一个依赖项。

真诚的,泰

最佳答案

就 URLConnection 而言,以下是有关如何使其持久化的所有信息:Persistent Connections

如果可以,我推荐你使用Apache httpcomponents有很多例子:This one特别是展示了持久连接的基础知识。

关于java - 如何创建持久的 https 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35368453/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com