加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何从Java进行HTTP清除?

发布时间:2020-12-14 06:01:04 所属栏目:Java 来源:网络整理
导读:我正在尝试使用HttpUrlConnection执行PURGE,如下所示: private void callVarnish(URL url) { HttpURLConnection conn = null; try { conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod(PURGE_METHOD); conn.setDoOutput(true); conn
我正在尝试使用HttpUrlConnection执行PURGE,如下所示:
private void callVarnish(URL url) {
    HttpURLConnection conn = null;

    try {
        conn = (HttpURLConnection) url.openConnection();
        conn.setRequestMethod(PURGE_METHOD);
        conn.setDoOutput(true);
        conn.setInstanceFollowRedirects(true);
        conn.setRequestProperty("Host","www.somehost.com");
        conn.connect();
        System.out.print(conn.getResponseCode() + " " + conn.getResponseMessage());
     }
     catch (Exception e) {
         log.error("Could not call varnish: " + e);
     } finally {
         if (conn != null) {
             conn.disconnect();
         }
     }
}

但是我得到了:

08:56:31,813 ERROR [VarnishHandler] Could not call varnish: java.net.ProtocolException: Invalid HTTP method: PURGE

卷曲没有问题:

curl -I -X PURGE -H“主持人:www.somehost.com”someurl

HTTP/1.1 404 Not in cache.
Server: Varnish
Content-Type: text/html; charset=utf-8
Retry-After: 5
Content-Length: 401
Accept-Ranges: bytes
Date: Thu,18 Oct 2012 06:40:19 GMT
X-Varnish: 1611365598
Age: 0
Via: 1.1 varnish
Connection: close
X-Cache: MISS

那我该怎么做?我是否需要从Java卷曲或是否有其他我可以使用的库?

解决方法

您可以使用Apache的HttpClient库: http://hc.apache.org/httpcomponents-client-ga/

您可以使用BasicHttpRequest或实现自己的扩展HttpRequestBase的HttpPurge类.

你可以在这里找到一个快速入门指南:http://hc.apache.org/httpcomponents-client-ga/quickstart.html

例:

DefaultHttpClient httpclient = new DefaultHttpClient();
BasicHttpRequest httpPurge = new BasicHttpRequest("PURGE","www.somehost.com") 
HttpResponse response = httpclient.execute(httpPurge);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读