我們的客戶有一個簡單的設置。使用PERL自動提交表單 - 調試!
頁面A具有提交給顯示查詢結果的頁面B的表單。不幸的是,沒有其他API或數據庫訪問來獲取數據。
由於我們需要經常執行此查詢,因此我們決定使用Perl自動執行此提交。
我用嗅探器確定了頁面A的表單鍵值對並複製了代碼。但是,在運行程序頁面B時拋出HTTP 500錯誤,沒有其他有意義的解釋。
任何指針調試此代碼?本身代碼很簡單:
use strict; use warnings; use LWP; my $browser = LWP::UserAgent->new; my $url = "targeturl.asp" my $response = $browser->post($url, [ "HisSort" => "1", "RTsort" => "", "chkHisRun" => "on", "chkRTRun" => "on", "optAdHoc" => "on", "optHist" => "", "optServer" => "servername", "optStatus" => "", "optWhat" => "H", "txtEnd" => "", "txtFields" => "1,0,10,17,11,18,24,19,21,25,1", "txtHEnd" => "11/3/2010", "txtHStart" => "11/1/2010", "txtServer" => "", "txtStart" => "", ] );
注: 我沒有訪問頁面A或B頁
您應該提供完整的網址。 – Benoit 2010-11-29 12:45:57
如果您發送的是相同的請求,則會得到相同的響應。因此,您需要找出您的請求與瀏覽器的不同之處。例如,有沒有cookies?你的Perl腳本似乎沒有嘗試設置任何頭文件來匹配瀏覽器,或者B頁面可能無法解析用戶代理。 – 2010-11-29 13:04:03