所以我試圖通過nodejs下載一個文件,在瀏覽器中打開罰款,甚至在curl等工具中下載罰款。 但是,由於某種原因,nodejs僅僅因爲下載文件而失敗。我嘗試通過節點中的request
模塊並通過名爲download-cli
的節點cli模塊下載文件。他們都失敗了,或者400或404響應,但文件通過像curl這樣的常規工具進行下載。curl下載的文件,但不是由node.js下載
可能是什麼問題?我曾嘗試將用戶代理設置爲Firefox的打開方式(它打開的很好),但這並不能解決問題。我假設問題不在於用戶代理,因爲curl沒有自己的用戶代理。
在考慮中的URL可以是從alicdn任何URL,但讓我們這一個作爲一個例子: https://ae01.alicdn.com/kf/HTB1ftVmPVXXXXXUXVXXq6xXFXXXG/Langtek-smart-watch-gt12-часы-поддержка-синхронизации-notifier-sim-карты-подключение-bluetooth-для-android-apple-iphone.jpg_640x640.jpg
下面是由通過節點download-cli
工具,並在的powershell的Invoke-WebRequest
工具運行上述URL的響應。
PS C:\code> download https://ae01.alicdn.com/kf/HTB1ftVmPVXXXXXUXVXXq6xXFXXXG/Langtek-smart-watch-gt12-часы-поддержка-син
хронизации-notifier-sim-карты-подключение-bluetooth-для-android-apple-iphone.jpg_640x640.jpg
Couldn't connect to https://ae01.alicdn.com/kf/HTB1ftVmPVXXXXXUXVXXq6xXFXXXG/Langtek-smart-watch-gt12-часы-поддержка-синхронизации-notifier-sim-карты-подключение-bluetooth-для-android-apple-iphone.jpg_640x640.jpg (404)
PS C:\code> curl https://ae01.alicdn.com/kf/HTB1ftVmPVXXXXXUXVXXq6xXFXXXG/Langtek-smart-watch-gt12-часы-поддержка-синхрон
изации-notifier-sim-карты-подключение-bluetooth-для-android-apple-iphone.jpg_640x640.jpg
StatusCode : 200
StatusDescription : OK
Content : {255, 216, 255, 224...}
RawContent : HTTP/1.1 200 OK
X-Application-Context: fileserver2-download:prod:7001
From-Req-Dns-Type: NA,NA
SERVED-FROM: 72.247.178.95
Connection: keep-alive
Network_Info: DE_FRANKFURT_16509
Timing-Allow-Ori...
Headers : {[X-Application-Context, fileserver2-download:prod:7001], [From-Req-Dns-Type, NA,NA], [SERVED-FROM, 72.247.178.95],
[Connection, keep-alive]...}
RawContentLength : 114927
你能提供您使用下載代碼來自Node的文件?如果我們不知道你是如何嘗試這樣做的話,這是不可能的。 – serge1peshcoff
@ serge1peshcoff我曾嘗試通過各種類似的代碼使用本地http模塊,使用請求模塊和其他一些下載。代碼在99%的情況下工作正常,但在這裏失敗。看到這個失敗的實際原因的答案。 – ArsalanDotMe