4

我无法获得以下Mojo::UserAgent将 JSON 发布到服务器的调用:

use Mojo::UserAgent;
my $ua=Mojo::UserAgent->new;
my $json = $ua->post("localhost:6767" => {} => json =>{ val=>10 })->res->json;

在另一端使用假调试服务器nc -l 6767会给出以下输出:

POST / HTTP/1.1
User-Agent: Mojolicious (Perl)
Connection: keep-alive
Content-Length: 0
Host: localhost:6767 

不仅仅是json方法,form整个 Transactor 似乎在我的两台机器上都坏了。从文档:

perl -MMojo::UserAgent::Transactor -E 'say Mojo::UserAgent::Transactor->new->tx(PUT => "http://kraih.com" => json => {a => "b"})->req->to_string;'
PUT / HTTP/1.1
Content-Length: 4
Host: kraih.com

json

很难相信我的眼睛。我错过了什么?

4

1 回答 1

7

您的所有盒子都使用 Mojolicious 3.85 或更高版本吗?UA form/json生成器非常新,仅从3.85 或 2013-02-13开始。

您也可以尝试删除空的 hashref(这将用于额外的标头),除非有某种理由将它放在那里。

于 2013-03-14T16:43:42.897 回答