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吗?
答案 0 :(得分:2)
这是正确的方法。
调用openConnection()
实际上并没有做任何事情。在您请求服务器响应中返回的内容之前,请求不会“提交”(即,没有任何内容发送到服务器),例如响应正文(con.getInputStream()
),状态({ {1}})或其他一些响应标头。这使您有时间在con.getResponseCode()
上设置选项,例如您是否计划发送请求正文(即POST),设置请求方法等。
顺便说一下,你可以将方法设置为“在同一行上”,但是在同一行上是没有意义的:HttpUrlConnection
发送请求方法,或者它没有'吨。之后发生的方法调用不是一个因素,无论它们在哪一行。