java - HttpClient 在执行第二个请求时挂起

标签 java apache httpclient freeze

我正在编写一个可以在网站上登录和货比三家的 Java 应用程序。当我尝试执行第二个 HttpResponse/Post 时,我遇到了 HttpClient 挂起的问题。之前还好好的,不知道怎么就挂了。我没有收到任何错误,它只是坐在那里卡住了。我所做的唯一可能导致此挂断的更改是我正在使用 HttpGet 检索 token ,以便我可以登录网站。

这是我设置 httpClient 的方式

private static BasicCookieStore cookieStore = new BasicCookieStore();
private static HttpClient httpClient = HttpClientBuilder.create().setDefaultCookieStore(cookieStore).build();

剩下的只是一个标准的httpget & httppost,然后是httpclient.execute();

第一个序列是我的程序查询网站并检索 token ,然后我发送带有 token 的 POST 以登录。之后我的程序再次查询网站以获取产品信息,然后添加到购物车。但它在第二个 POST 时挂起。

我会不会在某处错过了同花顺?我在某处读到这种方式的 HttpClient 会自行关闭。并且 DefaultHttpClient 已被弃用。

最佳答案

在下面发布的教程中,他们没有提到我应该使用 post.releaseConnection();它导致我的代码挂断,所以我在每次 POST/GET 之后添加了 releaseConnection() 函数。我希望这是清理代码的正确方法。

关于java - HttpClient 在执行第二个请求时挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33351157/

相关文章:

java - 提取长字符串的一部分。

多线程的Javax邮件

apache - 如何将 IIS Express 8 端口 80 更改为 8080

java - 如果不设置connectiontimeout、connectionmanagertimeout 和sockettimeout,httpclient 4.3 默认超时设置如何工作?

java - 调试时会忽略依赖项 org.apache.httpcomponents :httpclient:4. 5,因为它可能与提供的内部版本冲突

java - 使用 HttpClient 发布到表单但获取 SSLPeerUnverifiedException 但浏览器工作正常

java - 在 Selenium 中计时的最佳方式

java - 两个 Derby 数据库可以在同一主机上运行吗?

mysql - 在 Windows XP 上设置 WAMP 服务器

javascript - 为什么我的 AJAX 请求会根据文件扩展名给出错误?