2014-10-06 81 views
0

從一個例子工作,我用下面的代碼來下載文件:添加標頭(用於HTTP請求)文件下載

url = new URL(stUrl); 
connection = (HttpURLConnection) url.openConnection(); 

connection.addRequestProperty ("Foo", "Bar"); 
connection.setDoOutput(true); // update as per comment! 
connection.connect(); 

     // download the file 
is = new BufferedInputStream(
    url.openStream(), 
    8192 
); 
os = new BufferedOutputStream(new FileOutputStream(tmp)); 
copyStream(is, os); 

這工作正常下載。但是在http請求中包含Foo/Bar標頭失敗。

爲什麼?


更新

  • 下載URL = 「http://x0data.com/android/default/rqst
  • 我想通過標題(不GET或POST參數)
  • 我知道服務器是正常的,因爲這用於工作(對於我似乎已經丟失的Android代碼...)
+0

什麼是在網址?它看起來怎樣? – greenapps 2014-10-06 08:53:22

+0

我已添加網址。但請注意,如果文件正常工作,請下載。問題是沒有包含頭文件。 – 2014-10-06 09:20:24

+0

服務器沒有收到標題?所有一切都取決於服務器,因爲您沒有指定配置zip。那麼什麼樣的服務器代碼/腳本正在回答'請求'? – greenapps 2014-10-06 10:28:41

回答

0

好的,來自@greenapps的一些很好的幫助。下面似乎包括報頭,同時下載一個文件:

url = new URL(stUrl); 
connection = (HttpURLConnection) url.openConnection(); 
connection.addRequestProperty ("Foo", "Bar"); 
connection.setDoOutput(true); 

OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream()); 
writer.flush(); 

String line; 
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); 

現在,我只需要弄清楚如何寫一個BufferedReaderFile ...

(和測試&驗證...)