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);
 
        

 

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM