在Android中优化HttpURLConnection

时间:2010-09-07 19:04:55

标签: java android eclipse http

这个问题困扰着我:

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 个答案:

答案 0 :(得分:2)

这是正确的方法。

调用openConnection()实际上并没有做任何事情。在您请求服务器响应中返回的内容之前,请求不会“提交”(即,没有任何内容发送到服务器),例如响应正文(con.getInputStream()),状态({ {1}})或其他一些响应标头。这使您有时间在con.getResponseCode()上设置选项,例如您是否计划发送请求正文(即POST),设置请求方法等。

顺便说一下,你可以将方法设置为“在同一行上”,但是在同一行上是没有意义的:HttpUrlConnection发送请求方法,或者它没有'吨。之后发生的方法调用不是一个因素,无论它们在哪一行。