2013-03-14 11 views
3

나는 서버에 JSON을 게시하려면 다음 Mojo::UserAgent 호출을받을 수 없습니다 nc -l 6767가 제공으로 반대편에 가짜 디버그 서버를 사용는 모조 :: 해당 UserAgent 요청에서 JSON을 게시 할 수 없습니다

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

을 다음과 같은 출력 : 그것은 단지 json 방법이 아니다

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

form, 전체 업무를 담당하고 내 기계의 2에 깨진 것으로 보인다. 문서에서 :

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 

하드 내 눈을 믿으십시오. 내가 뭘 놓치고 있니?

답변

5

모든 상자가 Mojolicious 3.85 이상을 사용하고 있습니까? UA form/json 발전기는 신품이므로 3.85 or 2013-02-13 이후입니다.

추가 해시가 필요한 경우가 아니면 빈 헤더를 제거해보십시오 (추가 헤더의 경우).

+0

그게 전부 였어! 나는 시행 착오를하는 동안 Mojolicious를 업그레이드했다고 맹세 할 수 있습니다. 돌아 왔고 cpanm 설치가 디렉토리 권한 때문에 실패한 것을 보았습니다 ... 빈 hashref는 문제가 아니 었습니다. – ojosilva

+0

+1, 내 mojo 버전도 구형이었고 나도 내가 뭘 잘못하고 있었는지 궁금해하고있었습니다. –