当前位置: 首页 > 面试题库 >

使用HttpRequest.execute()的异常:无效使用SingleClientConnManager:仍分配了连接

杜烨伟
2023-03-14
问题内容

我正在使用google-api-client-java
1.2.1-alpha执行POST请求,并在我执行execute()HttpRequest时得到以下stacktrace。

在我捕获并忽略从先前的POST到相同URL的403错误并重新用于后续请求的传输之后,它立即发生。(这是将多个条目插入同一ATOM提要的循环)。

403之后,我应该做些什么来“清理”吗?

Exception in thread "main" java.lang.IllegalStateException: Invalid use of SingleClientConnManager: connection still allocated.
Make sure to release the connection before allocating another one.
    at org.apache.http.impl.conn.SingleClientConnManager.getConnection(SingleClientConnManager.java:199)
    at org.apache.http.impl.conn.SingleClientConnManager$1.getConnection(SingleClientConnManager.java:173)
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:390)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:641)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:576)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:554)
    at com.google.api.client.apache.ApacheHttpRequest.execute(ApacheHttpRequest.java:47)
    at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:207)
    at au.com.machaira.pss.gape.RedirectHandler.execute(RedirectHandler.java:38)
    at au.com.machaira.pss.gape.ss.model.records.TableEntry.executeModification(TableEntry.java:81)

为什么我下面的代码试图获取 新的 连接?


问题答案:

您需要先使用响应主体,然后才能将连接重用于另一个请求。您不仅应该读取响应状态,还应该InputStream完整读取响应到最后一个字节,从而忽略所读取的字节。



 类似资料:
  • 问题内容: 我正在打电话给REST URL,并试图衡量恢复响应所花费的时间。 我为此目的是要从获得回复。 在下面的程序中,每个线程将在特定范围内工作。就像每个线程将在第二个线程之间工作,等等。 因此,在我下面的代码中,它第一次正常工作。但是,这是第二次在该行上抛出异常,因为- 我在这里做错什么吗?- 以下是我的代码- 更新代码: 如果我正在做这样的事情- 那好吗? 问题答案: 我在这里做错什么吗?

  • 我正在尝试更改!doctype但仍然不能工作 我的test.java

  • 当方法运行时,我希望抛出一个异常(在测试时)。我能做的事情很少: 存根(mock.someMethod(“某些参数”)).ToThrow(new RuntimeException()); 当(mock.someMethod(“某些参数”)).thenThrow(new RuntimeException()) 放弃..... 通常我会创建一个spy对象来调用spied方法。使用stubbing我可以

  • 问题内容: 下面的简单测试案例失败了,但有一个例外。 我不知道怎么了 问题答案: Mockito要求您在存入方法调用时仅使用原始值或仅使用匹配器。完整的例外情况(您未在此处发布)肯定可以解释所有情况。 简单更改行: 至 它应该工作。

  • 我有下面的代码,将检查,看看用户是否在数据库中可用之前,他被授予访问该网站,但是当用户输入任何值,它将登录他,即使他没有在数据库中注册。在这段代码之后是JQuery代码,我也用它来防止任何值被输入到数据库中,如果字段是空的,并且它不是默认的文本字段值它继续登录过程,而不是阻止我在填写所需字段之前做任何事情。 下一行是JQuery代码。