2016-12-01 37 views
0

我正試圖下載Dropbox鏈接到文件output.txt。事情是這樣的:正在下載https文件在框架中工作在開發中,但不在生產中

URL link = new URL("https://dl.dropboxusercontent.com/1/view/XXX/file.txt"); 
ReadableByteChannel rbc = Channels.newChannel(link.openStream()); 
FileOutputStream fos = new FileOutputStream("output.txt"); 
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); 

當我跑步時我在開發應用程序(即activator run)能正常工作。當應用程序是被演出和部署在生產,我在link.openStream()步獲取連接超時:

play.api.UnexpectedException: Unexpected exception[ConnectException: Connection timed out] 

我能夠保存任何HTTP文件或網站在生產中的文件。它似乎超時在任何https文件。關於如何開始解決這個問題的任何想法?

這是否與播放有關或與我的apache服務器有關的配置問題?

謝謝

+0

還是由於未登錄? –

+0

@ScaryWombat禁止其公開訪問的鏈接應該沒有問題 – by0

+0

所以真正的名稱不是'https:// dl.dropboxusercontent.com/1/view/XXX/file.txt' - BTW爲什麼https? –

回答

0

您可能會遇到配置問題或從該服務器訪問該URL的問題。這是一個簡單的部分。

你也可能有SSL證書的問題。因此,您需要下載並在本地添加它,或者向服務器所有者(即一臺服務器 - 「https://dl.drop ...」)修復證書(這可能是他們身邊的問題)。

要驗證是否有證書的問題 - 你可以使用這個問題描述的代碼Java and HTTPS url connection without downloading certificate請勿使用此代碼,生產 - 因爲你的安全將是0,這個代碼迫使你信任的任何證書,所以「https」自然會變成你的「http」。

第二個問題(如果有幾次我得到了)的原因是生產環境有更嚴格的安全設置,而且我讀取https資源的服務器在認證方面存在某些問題,如到期或重新認證不正確。

相關問題