LWP POST 请求无效

LWP POST request not working

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;
}

我确实有URL:我只是为了这个例子把它拿出来的。

我错过了什么?

尝试像这样调试脚本:

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;
}

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

代码没问题。问题一定出在为状态代码 200 的请求提供服务的服务器。您应该在服务器端检查。

能不能不使用调试器,或者加点打印语句看看你的程序运行的怎么样?

如果不是,那么这将是 on-line turn-by-turn 调试的另一个案例,除了 OP 之外没有任何人受益,最终的诊断是他们应该先学习语言

互联网可以是明智的,但它会让更多的工匠伪装而不是工匠

请永远不要指望 half-hearted 尝试画一个草图,然后在世界其他地方用绳子来完成你的工作。即使是 "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;