代码之家  ›  专栏  ›  技术社区  ›  Orca

在Android中优化httpurlConnection

  •  2
  • Orca  · 技术社区  · 14 年前

    这个问题困扰着我:

    HttpURLConnection con = (HttpURLConnection)new URL(url).openConnection();
    con.setRequestMethod("HEAD");
     if (con.getResponseCode()!=200 ){dosomething()}
    

    这是设置请求方法的正确方法吗,还是因为我调用了url.openconnection()并且它已经使用默认的get进行了连接,所以已经太迟了?

    我不能在OpenConnection的同一行中调用setRequestMethod(“head”),因为它返回的是URLConnection,而不是HTTPURLConnection。

    那么,如何确保该方法始终是head,而知道缺省值是get?

    我应该只使用httpclient吗?

    1 回复  |  直到 14 年前
        1
  •  2
  •   erickson    14 年前

    这是正确的方法。

    打电话 openConnection() 实际上什么都不做。在请求服务器响应中返回的内容(如响应的主体)之前,请求不会“提交”(即,不会向服务器发送任何内容)。( con.getInputStream() (状态) con.getResponseCode() )或其他响应头。这使您有时间在 HttpUrlConnection 例如,是否计划发送请求主体(即post),设置请求方法等。

    顺便说一下,你 能够 将方法设置为“在同一行上”,但在同一行上没有意义:或者 打开连接() 发送请求方法,或者不发送。发生在之后的方法调用不是一个因素,不管它们在哪一行。