2012-09-13 93 views
0

我正在使用Perl從我構建的Web服務請求一些信息(純文本)。使用瀏覽器訪問時,信息完美顯示。不過,我是使用Perl處理響應的新手。我成功地完成了一些數據庫操作,而我的問題是在Perl中處理響應,而不是PHP。如何格式化Web服務響應以供Perl讀取?

如何編碼或格式化響應才能成功處理它並在Perl中輸出相同的純文本?

編輯:

要點考慮到

  • 我用CakePHP的2.x的(穩定)工作。
  • The $ response-> content帶來了整個HTML文件(包括JavaScript和整個包)。我只想在Perl腳本中顯示純文本。
  • 當檢查時,Perl腳本失敗* $ response-> is_success *並直接進入print「出錯了」;

我的PHP腳本運行良好

PHP代碼:

<?php 
$this->layout = 'ajax'; 
$this->autoRender = false; 
// Some database handling here with no problem... 
echo "Plain text with info from database"; 
?> 

Perl代碼:

#!/usr/local/bin/perl 
require LWP::UserAgent; 
require HTTP::Request; 
my $request = HTTP::Request->new(GET => $url); 
my $userAgent = LWP::UserAgent->new; 
$userAgent->timeout(3); 
$userAgent->env_proxy; 
my $response = $userAgent->request($request); 
if ($response->is_success) { 
    print "Success!\n"; 
    #should print plain text AS IS 
} 
else { 
    print "something went wrong...\n"; 
    die $response->status_line; 
} 
+0

你的問題是什麼?你想知道如何從網絡中提取的內容中提取數據嗎? – SexyBeast

+0

是的。我提供了更多信息來幫助你,夥計們。提前致謝。 – pctroll

+0

所以打印出來後,出現了什麼問題......它在死時應輸出的狀態信息是什麼?另外,我假設你實際上在你的真實代碼中設置了'$ url'。 – Cebjyre

回答

1

檢查$response->is_success後,你應該能夠只取返回值的

$response->decoded_content 

並處理它,但你認爲合適。