即時消息試圖做的是用httpclient下載文件。目前我的代碼如下。用Apache HttpClient下載文件
HttpClient client = HttpClientBuilder.create().build();
HttpGet request = new HttpGet(downloadURL);
HttpResponse response = client.execute(request);
HttpEntity entity = response.getEntity();
if (entity != null) {
FileOutputStream fos = new FileOutputStream("C:\\file");
entity.writeTo(fos);
fos.close();
}
我的下載網址是類似的東西:http://example.com/file/afz938f348dfa3
正如你可以看到有沒有擴展名的文件(url中至少),但是,當我去到URL使用普通瀏覽器,它確實下載了文件「asdasdaasda.txt」或「asdasdasdsd.pdf」(該名稱與url不同,擴展名並不總是相同,取決於我試圖下載的內容)。
我的HTTP響應看起來是這樣的:
日期:星期一,2017年5月29日14點57分十四秒格林尼治標準時間服務器:Apache/2.4.10 內容處置:附件; filename =「149606814324_testfile.txt」 Accept-Ranges:bytes Cache-Control:public,max-age = 0最後修改日期: Mon,29 May 2017 14:29:06 GMT Etag:W /「ead-15c549c4678-gzip 「 Content-Type:text/plain;字符集= UTF-8有所不同:接受編碼 內容編碼:gzip的Content-Length:2554保持活動:超時= 5, 最大= 100連接:保持活動
我該怎麼辦,所以我的java代碼自動下載具有良好的名稱和擴展名在特定文件夾中的文件?
你可能想[這個頭(HTTPS ://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition),但當然這取決於如何從服務器提供文件;請求URL時,顯示普通HTTP響應的樣本接收或提供您使用的是能得到更多的幫助 –
@OvidiuDolha 日期的有效訪問網址:星期一,2017年14時57分十四秒GMT 服務器5月29日:Apache/2.4.10 內容處置:附件;文件名= 「149606814324_testfile.txt」 接受-範圍:字節 緩存控制:公衆,最大年齡= 0 的Last-Modified:星期一,2017年5月29日14時29分06秒GMT 的Etag:W/「ead-15c549c4678-gzip」 Content-Type:text/plain;字符集= UTF-8 有所不同:接受編碼 內容編碼:gzip 內容長度:2554 保持活動:超時= 5,最大= 100 連接:保持活動 – retArdos