Re: [問題] HttpURLConnection get file ?
※ 引述《Ruslan (露莎蘭)》之銘言:
: 不好意思,第一次來 貴板問問題 ^^
: 我想 HttpURLConnection 取得某站的檔案,但是公司內部對外有 proxy
: 而我不想在 run 時用 -D 指定 proxyHost 和 proxyPort
: 這種情況下可否先透過 Socket 通過 proxy
: 再用 HttpURLConnection 取得我要的檔案?
: 此外 我送過去的 url 也不是一個檔案的 path ,
: 而是一串 http://10.0.1.1/file.jsp&id=10 經過轉址後回傳 abc.txt
: 目前卡在兩個地方
: 1)如何通過 proxy 連到 Internet?
其實一切 -D option 所設定的 System properties
都可以在程式中利用 System.getProperties().put(String prop_name, String value)
去設定。所以在你 create HttpURLConnection 前使用以上的 function 去
設好 proxy 就可以了。
: 2)如何取回轉址後的 file?
這個要實測一下 :P 我以前也做過差不多的東西,也是從另一個 CGI 中抽回一個
HTML 檔存下,內容的話是很簡單的,只要把 URLConnection 的 inputstream 讀
出就可以了。不過若你想要知道那個回傳的檔名稱,就應該要透過 URLConnection
的 getHeaderField("Content-disposition") 吧。
[沒有實測過,不過在做 servlet 時有時候要 return 一個 pdf 給 client 時,
在 HttpServletResponse 中 set Header :
res.setHeader("Content-disposition", "attachment; filename=remarks.pdf")
所以,我「猜」你在 URLConnection 中 getHeader("Content-disposition"),再
將 return string 中的 element split 一下,應該很容易就找到 return filename
的了]
[有時間我等一下打過 MHP2 後再測試看看是否正確 XD]
--
《為了要得到真相,就要向原 PO 伸圖》
那就是伸圖魔人的沒圖沒真相原則,那時我們堅信那就是逼逼死的真實
靠么,圖咧?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.218.142.161
討論串 (同標題文章)