2014-09-19 79 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);