[問題] Win32::Internet get http 的問題

看板Perl作者 (TONICOM)時間16年前 (2009/04/08 12:50), 編輯推噓0(004)
留言4則, 1人參與, 最新討論串1/1
小弟最近用以下的方法來get一筆 HTTP 的網頁資訊 , use Win32::Internet; my $http_get = new Win32::Internet(); $http_get -> ConnectTimeout(1000); $http_get -> HTTP(my $HTTP, $IP.":".$Port, $Account, $Password ); my($statuscode, $headers, $file) = $HTTP -> Request("/file"); $HTTP -> Close(); 確實是成功了 , 但是有個問題我無法解決 , 上面的程式是一個sub , 並被我重複調用, 可是似乎無法抓到正確的資訊 , 例如我現在抓了一筆資料,抓取成功,資料也正確 , 接下來HTTP的File被變更過 , 此時我的程式並未關閉 , 而是再去 call sub來抓取同一個位置同一檔名資料, 抓取成功,但是資料卻是上一次的卻不是最新 , 我發現若是我把執行程式PC(Windows)內IE的Temporary Internet Files設定從預設"自動",改為"每次照訪網頁時" 就變得正常, 所以我的推測是,透過Win32 API 來抓取網頁 , 似乎會繼承Windows的設定 , 但是我實在沒辦法要求大家作電 腦的修改. 不知道Win32::Internet是否有參數設可以設定強制抓取現在的資料,而不是抓取Temporary Internet Files?? 感謝.. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.87.80.87

04/09 00:41, , 1F
解決了!! 我手動自行刪除!!唉 我真是死腦筋..忘了這是Perl
04/09 00:41, 1F

04/09 17:07, , 2F
我試過傳參數 INTERNET_FLAG_DONT_CACHE 但是無效...所以
04/09 17:07, 2F

04/09 17:09, , 3F
我抓環境變數來得知Temporary Internet Fils位置,手動刪除
04/09 17:09, 3F

04/09 17:11, , 4F
但是有缺點,有些人會自行移動該目錄,考量大多數,就這麼用
04/09 17:11, 4F
文章代碼(AID): #19t2qGkv (Perl)
文章代碼(AID): #19t2qGkv (Perl)