我需要使用nsIWebBrowserPersist
下載文件(saveURI
)。但該文件應作爲POST請求。怎麼做?如何使用nsIWebBrowserPersist發佈數據?
1
A
回答
0
這裏是工作的代碼(從IRC#extdev感謝BENB):
var dataString = "name1=data1&name2=data2";
var stringStream = Components.classes["@mozilla.org/io/string-input-stream;1"].
createInstance(Components.interfaces.nsIStringInputStream);
if ("data" in stringStream) // Gecko 1.9 or newer
stringStream.data = dataString;
else // 1.8 or older
stringStream.setData(dataString, dataString.length);
var postData = Components.classes["@mozilla.org/network/mime-input-stream;1"].
createInstance(Components.interfaces.nsIMIMEInputStream);
postData.addHeader("Content-Type", "application/x-www-form-urlencoded");
postData.addContentLength = true;
postData.setData(stringStream);
persist.saveURI(fURI, null, aReferrer, postData, "", file);
https://developer.mozilla.org/en/Code_snippets/Post_data_to_window#Preprocessing_POST_data
3
nsIWebBrowserPersist.saveURI()
需要aPostData
參數 - 如果您傳遞輸入流,則會發出POST請求。如果您要發送一些簡單的數據,使用nsIStringInputStream應該是最簡單的,是這樣的:
var data = "a=1&b=2";
var stream = Components.classes["@mozilla.org/io/string-input-stream;1"]
.createInstance(Components.interfaces.nsIStringInputStream);
stream.setData(data, data.length);
webBrowserPersist.saveURI(uri, null, null, stream, null, file);
相關問題
- 1. 如何使用graphene_django發佈數據?
- 2. 如何使用extJS發佈json數據
- 3. 如何使用JQuery發佈JSON數據?
- 4. 如何使用快遞發佈數據?
- 5. 我如何使用Angularjs發佈數據?
- 6. 如何使用ajax發佈數據?
- 7. 如何使用node-curl發佈數據?
- 8. 如何使用RestKit發佈無發佈數據
- 9. 使用cfhttp發佈數據
- 10. 使用python發佈數據
- 11. 使用libcurl發佈數據
- 12. 如何使用liuggio/ExcelBundle將excel數據發佈到數據庫
- 13. 如何使用node.JS將數據發佈到MongoDB數據庫?
- 14. 如何在服務器端使用發送的發佈數據
- 15. 如何使用python發送原始發佈數據?
- 16. 當我使用jquery發送發佈數據時,如何正確清理數據?
- 17. 如何使用JSON發佈
- 18. 如何使用Git發佈?
- 19. 如何發佈使用Microsoft.Build.BuildEngine
- 20. 發佈數據
- 21. 使用Jsoup發佈textarea數據
- 22. 在PHP中使用AJAX發佈數據
- 23. 使用jQuery發佈Zend框架數據
- 24. Asp.Net Mvc使用Url發佈json數據
- 25. 使用php發佈數據屬性
- 26. 使用jQuery發佈MVC查看數據
- 27. 使用Python發佈原始數據
- 28. 使用Javascript發佈MailChimp JSON數據
- 29. 使用angularjs發佈數據到PHP
- 30. 使用該項目發佈數據庫
謝謝,弗拉基米爾。其實我需要用POST請求下載文件,不應該發送額外的數據。但是當我試圖使用你的方法時,我看到0字節的文件被下載,並且我沒有看到Wireshark的HTTP請求... – 2012-01-09 12:39:24