【问题标题】:When HTTPConnection is performed and what is its status何时执行 HTTPConnection 以及它的状态是什么
【发布时间】:2016-09-12 19:30:51
【问题描述】:

我有以下从HttpURLConnection 生成 OutputStream 的代码 何时实际执行连接以及如何检查其状态?

  HttpURLConnection httpCon = (HttpURLConnection) url.openConnection();
  httpCon.setDoOutput(true);
  httpCon.setRequestMethod("PUT");
  httpCon.addRequestProperty("X-Auth-Token", getAuthToken());
  httpCon.setDoInput(true);
  httpCon.setRequestProperty("Connection", "close");
  httpCon.setReadTimeout(READ_TIMEOUT);
  httpCon.setRequestProperty("Transfer-Encoding","chunked");
  httpCon.setDoOutput(true);
  httpCon.setChunkedStreamingMode(STREAMING_CHUNK);
  mOutputStream  = httpCon.getOutputStream();

【问题讨论】:

    标签: java http outputstream httpconnection


    【解决方案1】:

    当您获得其中一个流或响应代码或调用connect() 时,将创建底层 TCP 连接(或从连接池分配)。 HttpURLConnection 对象本身不是 TCP 连接。

    【讨论】:

    • @Downvoter 请解释,并说明您选择的原因。这里没有错误。
    • 所以当我调用 getoutputstream 时连接实际上是打开的?以及我如何检查此连接是否已成功创建。您能否通过一些示例更新您的答案。谢谢
    • 所以连接实际上是打开的,正如我已经说过的,'当你得到一个流或响应代码,或者调用connect()'。如果连接未成功创建,您将获得IOException。我不明白你想要一个例子是什么,或者你为什么认为你需要它。
    • 我认为这里缺少的是对HttpURLConnection.getResponseCode() 的引用。它的结果应该在区间 [200, 300[ 在任何情况下成功操作。但这实际上取决于端点的质量。
    猜你喜欢
    • 1970-01-01
    • 2023-03-17
    • 2021-05-10
    • 1970-01-01
    • 2011-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多