我發送文件到服務器作爲八位字節流,我需要指定頭中的文件名:發送非ASCII文本
String filename = "«úü¡»¿.doc"
URL url = new URL("http://www.myurl.com");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.addRequestProperty("Accept", "application/json; charset=UTF-8");
conn.addRequestProperty("Content-Type", "application/octet-stream; charset=UTF-8");
conn.addRequestProperty("Filename", filename);
// do more stuff here
的問題是,一些我需要發送的文件具有包含非ASCII字符的文件名。我已經讀過,您不能在HTTP標頭中發送非ASCII文本。
我的問題是:
- 你可以在HTTP標頭中發送非ASCII文本?
- 如果可以,你是如何做到這一點的?當文件名包含非ASCII文本時,上面的代碼不起作用。服務器以「錯誤請求400」響應。
- 如果您不能,典型的 方法是什麼來解決這個限制?
嗯,仍然沒有工作。我做了:conn.addRequestProperty(「文件名」,URLEncoder.encode(文件名)); – guest99 2011-03-09 21:59:28