6

En Android, puede descargar un archivo utilizando las clases org.apache.httpHttpClient, HttpGet y HttpResponse. ¿Cómo puedo leer el nombre de archivo sugerido de la solicitud HTTP?Obtener el nombre de archivo sugerido de org.apache.http.HttpResponse

E.g. En PHP, usted podría hacer esto:

header('Content-Disposition: attachment; filename=blah.txt'); 

¿Cómo consigo el "blah.txt" utilizando las clases de Apache en Android/Java?

Respuesta

7
BasicHeader header = new BasicHeader("Content-Disposition", "attachment; filename=blah.txt"); 
HeaderElement[] helelms = header.getElements(); 
if (helelms.length > 0) { 
    HeaderElement helem = helelms[0]; 
    if (helem.getName().equalsIgnoreCase("attachment")) { 
     NameValuePair nmv = helem.getParameterByName("filename"); 
     if (nmv != null) { 
      System.out.println(nmv.getValue()); 
     } 
    } 
} 

sysout> blah.txt

3
HttpResponse response = null; 
try { 
    response = httpclient.execute(httppost); 
} catch (ClientProtocolException e) { 
} catch (IOException e) { 
} 

//observe all headers by this 
Header[] h = response.getAllHeaders(); 
for (int i = 0; i < h.length; i++) { 
    System.out.println(h[i].getName() + " " + h[i].getValue()); 
} 

//choose one header by giving it's name 
Header header = response.getFirstHeader("Content-Disposition"); 
String s = header.getValue() 
Cuestiones relacionadas