2011-05-01 7 views
9

Cuando hago:¿Cómo obtener los encabezados? (Java, httpclient 4.X)

Header[] h = first.getAllHeaders(); 

El volvió Header matriz está vacía. ¿Algunas ideas? A continuación está mi código.


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

Respuesta

13

que está llamando getAllHeaders() en first, que es su objeto HttpGet. Al que desea llamar getAllHeaders() en la respuesta objeto como éste:

Header[] h = response.getAllHeaders(); 

También puede comprobar el código de estado de la respuesta y responder en consecuencia la siguiente manera:

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 
} 
Cuestiones relacionadas