java中如何設置HTTP協議的頭信息(header)

首先,咱們先看一下http的頭信息究竟是什麼:
HTTP(HyperTextTransferProtocol) 即超文本傳輸協議,目前網頁傳輸的的通用協議。HTTP協議採用了請求/響應模型,瀏覽器或其餘客戶端發出請求,服務器給與響應。就整個網絡資源傳輸而 言,包括message-header和message-body兩部分。首先傳遞message- header,即http header消息。http header 消息一般被分爲4個部分: general header, request header, response header, entity header。可是這種分法就理解而言,感受界限不太明確,根據平常使用,大致分爲Request和Response兩部分。
在一般的servlet/jsp應用中,咱們只是從http的header中取得信息,若是要設置信息,須要用到HttpClient,具體的設置方法以下:
HttpResponse response = null;  
    HttpGet get = new HttpGet(url);  
    get.addHeader("Accept", "text/html");  
    get.addHeader("Accept-Charset", "utf-8");  
    get.addHeader("Accept-Encoding", "gzip");  
    get.addHeader("Accept-Language", "en-US,en");  
    get.addHeader("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.160 Safari/537.22");  
    response = client.execute(get);  
    HttpEntity entity = response.getEntity();  
    Header header = entity.getContentEncoding();  
    if (header != null)  
    {  
        HeaderElement[] codecs = header.getElements();  
        for (int i = 0; i < codecs.length; i++)  
        {  
            if (codecs[i].getName().equalsIgnoreCase("gzip"))  
            {  
                response.setEntity(new GzipDecompressingEntity(entity));  
            }  
        }  
    }  
    return response; 
 

 


其中,client爲一個HttpClient的實力,建立方式如:
SchemeRegistry schemeRegistry = new SchemeRegistry();  
        schemeRegistry.register(new Scheme("http", 80, PlainSocketFactory.getSocketFactory()));  
    schemeRegistry.register(new Scheme("https", 443, SSLSocketFactory.getSocketFactory()));  
    PoolingClientConnectionManager cm = new PoolingClientConnectionManager(schemeRegistry);  
    cm.setMaxTotal(200);  
    cm.setDefaultMaxPerRoute(2);  
    HttpHost googleResearch = new HttpHost("research.google.com", 80);  
    HttpHost wikipediaEn = new HttpHost("en.wikipedia.org", 80);  
    cm.setMaxPerRoute(new HttpRoute(googleResearch), 30);  
    cm.setMaxPerRoute(new HttpRoute(wikipediaEn), 50); 
    DefaultHttpClient client = new DefaultHttpClient(cm);
相關文章
相關標籤/搜索