2014-09-19 76 views
0

當我運行我的Perl腳本時顯示錯誤。它說,內部服務器錯誤。錯誤代碼500.我該如何處理?如何處理HTTP Post錯誤

use warnings; 
use strict; 
use LWP::UserAgent; 

my $ua = LWP::UserAgent->new; 
my $url = "https://myhost/test/server.php"; 


my $req = HTTP::Request->new(POST => $url); 
$req->header('content-type' => 'application/json'); 


my $post_data = {"value": "sample", "value2":"sample2"}; 
$req->content($post_data); 
#print $req->as_string; 


my $resp = $ua->request($req); 
if ($resp->is_success) { 
    my $message = $resp->decoded_content; 
    print "Received reply: $message\n"; 
} 
else { 
    print "HTTP POST error code: ", $resp->code, "\n"; 
    print "HTTP POST error message: ", $resp->message, "\n"; 
} 

回答

0

這不是有效的Perl:

my $post_data = {"value": "sample", "value2":"sample2"}; 

您需要在單引號的價值:或者

my $post_data = '{"value": "sample", "value2":"sample2"}'; 

,你可以用Perl中的哈希啓動,並建立json字符串使用JSON

use JSON; 

my %hash = (value => 'sample', value2 => 'sample2'); 
my $post_data = to_json(\%hash);