2011-05-01 22 views
9

當我做:如何獲取標題? (Java中,HttpClient的4.X)

Header[] h = first.getAllHeaders(); 

返回Header數組爲空。有任何想法嗎?以下是我的代碼。


HttpClient httpclient = new DefaultHttpClient(); 

CookieStore cookieStore = new BasicCookieStore(); 

// Create local HTTP context 
HttpContext localContext = new BasicHttpContext(); 
// Bind custom cookie store to the local context 
localContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore); 


HttpGet first = new HttpGet("http://vk.com"); 
HttpResponse response = httpclient.execute(first, localContext); 

InputStream instream = response.getEntity().getContent(); 
StringBuilder sb = new StringBuilder(); 
BufferedReader r = new BufferedReader(new InputStreamReader(instream, Charset.forName("windows-1251"))); 
for (String line = r.readLine(); line != null; line = r.readLine()) { 
    sb.append(line); 
} 
Header[] h = first.getAllHeaders(); 
instream.close(); 
String s = sb.toString(); 

回答

13

你在firstgetAllHeaders(),這是你的HTTPGET對象。你想打電話getAllHeaders()響應對象是這樣的:

Header[] h = response.getAllHeaders(); 

你也可以檢查響應的狀態碼,這樣相應的反應:

int statusCode = response.getStatusLine().getStatusCode(); 
Logger.d("Response returned status code " + statusCode); 

if (HttpStatus.SC_OK == statusCode) { 
    // TODO: handle 200 OK 
} else if (HttpStatus.SC_NOT_FOUND == statusCode) { 
    // TODO: handle 404 Not Found 
} else { 
    // TODO: handle other codes here 
} 
相關問題