android http请求头,Android:如何发出HTTP HEAD请求?

我想做一个简单的http头请求,而不是保持活跃。

我怎么能在安卓上做到呢?

最佳答案:

使用httpclient:

正如njzk2所建议的,使用HttpClient()非常简单:HttpResponse response = new HttpClient().execute(new HttpHead(myUrl));

但是,无法关闭连接存在问题。通常在httpclient上,可以使用以下方法获取实体:

HttpEntity entity = response.getEntity();

然后从实体中获取输入流

InputStream instream = entity.getContent();

...

instream.close();

通过关闭输入流,连接将关闭。

但是,在head请求的情况下,实体似乎是null(可能是因为head请求不返回响应中的主体),因此无法获取和关闭输入流,连接也不会关闭。

在对他的回答的最后一次编辑中,njzk2建议使用AndroidHttpClient,这是HttpClient的最新实现(api 8),它实际上有一个close()方法。我没用过,但我想它会很好用的。然而,正如android开发团队所建议的,HttpUrlConnection应该是首选的android客户端。

使用httpurlconnection:

实际上,使用HEAD发出HttpUrlConnection请求并确保连接关闭似乎非常容易:

HttpURLConnection urlConnection = null;

System.setProperty("http.keepAlive", "false");

try {

URL url = new URL(stringUrl);

urlConnection = (HttpURLConnection) url.openConnection();

urlConnection.setRequestMethod("HEAD");

urlConnection.getInputStream().close();

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally {

if (urlConnection != null) {

urlConnection.disconnect();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值