无法在Mojo :: UserAgent请求中发布json

ojo*_*lva 3 perl mojo mojolicious

我无法通过以下Mojo::UserAgent调用将JSON发布到服务器:

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

在另一侧使用假调试服务器,nc -l 6767提供以下输出:

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

这不仅仅是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
Run Code Online (Sandbox Code Playgroud)

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

Joe*_*ger 5

你的所有盒子都使用Mojolicious 3.85或更高?UA form/ json发电机是非常新的,仅在3.85或2013-02-13之后.

您也可以尝试删除空的hashref(这将是额外的标头),除非有一些理由让它在那里.