6

Trong Android, bạn có thể tải tệp xuống bằng các lớp org.apache.httpHttpClient, HttpGetHttpResponse. Làm cách nào tôi có thể đọc tên tệp được đề xuất từ ​​yêu cầu HTTP?Lấy tên tệp được đề xuất từ ​​org.apache.http.HttpResponse

Ví dụ: Trong PHP, bạn sẽ làm điều này:

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

Làm cách nào để nhận "blah.txt" bằng cách sử dụng các lớp Apache trong Android/Java?

Trả lời

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