【问题标题】:Connection Reset error in HttpClientHttpClient 中的连接重置错误
【发布时间】:2014-03-27 07:38:26
【问题描述】:

这是我正在测试的场景。步骤如下

  1. 创建一个HttpClient(org.apache.commons.httpclient.HttpClient)3.1的实例
  2. 使用实例从 url (http://www.example.com/submitData) 获取响应
  3. 关闭托管第 2 步中提到的 url 的服务器。
  4. 打开网址
  5. 等到网址打开
  6. 使用步骤1中创建的HttpClient实例从url(http://www.example.com/getData)获取响应

我收到一个错误 - 连接重置。 谁能帮我理解一下。

我在 HttpClient 中使用了以下参数

    httpClient.getParams().setParameter("http.socket.timeout", new Integer(0));
    httpClient.getParams().setParameter("http.connection.stalecheck", new Boolean(true));

根据 Peter 的 cmets 编辑 这就是我创建 HttpClient 的方式

HttpClient httpClient = new HttpClient();
AuthScope authScope = new AuthScope("www.example.com", 80, AuthScope.ANY_REALM);
Credentials defaultcreds = new UsernamePasswordCredentials("username", "pwd");
httpClient.getState().setCredentials(authScope, defaultcreds);
httpClient.getParams().setParameter("http.socket.timeout", new Integer(0));
httpClient.getParams().setParameter("http.connection.stalecheck", new Boolean(true));

要建立连接,我使用以下

GetMethod getMethod = new GetMethod("http://"+httpClient.getHostConfiguration().getHost()+"/getData");
int statusCode = httpClient.executeMethod(getMethod);

我希望 httpclient 实例保留主机名、端口和凭据。

这是我得到的确切执行消息 - “连接重置”。

更多信息 - 我正在从 Eclipse 执行测试。如果我在调试模式下运行测试用例,我不会得到这个异常。

【问题讨论】:

    标签: java httpclient connection-reset


    【解决方案1】:

    我认为这种行为是合理的,因为当服务器关闭时,服务器上的客户端套接字也会消失。客户端仍然拥有旧的套接字,但这个套接字在服务器上已经消失了。您应该从客户端重新连接。

    AFAIK stale 参数允许客户端以干净的方式关闭连接(无异常),但不能阻止断开连接。

    【讨论】:

    • 但我不希望与 url 保持任何联系。 HttpClient 进行的调用是 REST 调用,我想要的只是 HttpClient 对象来保存主机和端口等数据。
    • 那么向我们展示如何实例化 HttpClient 并打开连接。
    • 我已修改问题以反映创建 HttpClient 实例所涉及的步骤
    • 你能发布确切的异常消息吗?
    • @PeterMnn 我已编辑问题以添加更多信息。感谢您的帮助。
    【解决方案2】:

    这看起来很可疑

    httpClient.getParams().setParameter("http.socket.timeout", new Integer(0));

    将超时设置为 0 毫秒可能会提前终止请求?

    【讨论】:

      猜你喜欢
      • 2016-04-12
      • 1970-01-01
      • 2017-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-10
      • 1970-01-01
      相关资源
      最近更新 更多