LWP POST请求无效

时间:2016-10-17 16:24:28

标签: perl post lwp

if语句向我显示有回复,但当我尝试print回复时,我什么都没得到

use LWP::UserAgent;

use strict;
use warnings;

use HTTP::Request::Common;

# use this {"process": "mobileGps","phone": "9565551236"}

my $url  = "the url goes here";
my $json = '{data :{"process" : "mobileGps", "phone" : "9565551236"}}';

my $req = HTTP::Request->new( POST => $url );

$req->header( 'Content-Type' => 'application/json' );
$req->content( $json );

my $ua  = LWP::UserAgent->new;
my $res = $ua->request( $req );

if ( $res->is_success ) {
    print "It worked";
    print $res->decoded_content;
}
else {
    print $res->code;
}

我有网址:我只是为了这个例子而把它拿出来。

我错过了什么?

3 个答案:

答案 0 :(得分:1)

尝试调试您的脚本:

use strict;
use warnings;

use HTTP::Request::Common;
use LWP::ConsoleLogger::Easy qw( debug_ua );
use LWP::UserAgent;

# use this {"process": "mobileGps","phone": "9565551236"}

my $url = "the url goes here";
my $json = '{data :{"process" : "mobileGps", "phone" : "9565551236"}}';

my $req = HTTP::Request->new(POST => $url);

$req->header('Content-Type' =>'application/json');
$req->content($json);

my $ua = LWP::UserAgent->new;
debug_ua( $ua );
my $res = $ua->request($req);


if ($res->is_success) {
    print "It worked";
    print $res->decoded_content;
} else {
    print $res->code;
}

那将(希望)让你更好地了解正在发生的事情。

答案 1 :(得分:1)

您是否可以使用调试器,或添加一些打印语句来查看程序的进展情况?

如果没有那么这将是另一个在线逐行调试的案例,除了OP之外没有人受益,最终的诊断是他们应该首先学习语言

互联网可以是明智的,但它会比工匠更多工匠Pretender

请不要期望对草图进行半心半意的尝试,然后在世界其他地方绞尽脑汁来完成你的工作。即使"What's your name" .. "Hello"程序正常工作也需要巨大的大量经验,才能和理解力,之后事情变得更加艰难

如果你不喜欢小心谨慎,宁愿让人为你做你的东西而不是通过实验发现解决方案,那么你就是经理,而不是程序员。我希望你永远不会试图通过授权来提升软件生涯,因为这不适用于软件

下面。像这样使用它。世界上到处都是管理者;它是我们需要的优秀程序员

use strict;
use warnings 'all';
use feature 'say';

use constant URL => 'http://example.com/';

use LWP;

my $ua  = LWP::UserAgent->new;

my $json = '{}';

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

my $res = $ua->request( $req );

say $res->as_string;

答案 2 :(得分:-1)

代码很好。问题必须是在状态码200上提供请求的服务器。您应该在服务器端检查。