WWW :: Mechanize不喜欢POSTing json

 渺渺珍人较_628 发布于 2022-12-18 19:37

我有以下代码:

my $j = encode_json { "arguments" => { "peer-port" => "4444" }, "method" => "session-set", };
$mech->get('http://192.168.1.10:9091');
my $req = HTTP::Request->new( 'POST', 'http://192.168.1.10:9091/transmission/rpc' );
$req->header( 'Content-Type' => 'application/json' );
$req->content($j);
$mech->request($req);

运行时,我收到以下错误:

Error POSTing http://192.168.1.10:9091/transmission/rpc: Conflict at ./pia.pl line 48.

我无法找到关于这个特定错误的任何内容,也无法在WWW :: Mechanize的文档(或HTTP :: Request)中找到任何可以解释它的内容.脚本在执行正确的表单提交时没有问题,它只在这个上失败(目标http服务器显然只接受ajax/json请求).

1 个回答
  • "Conflict"是来自服务器的响应,您应该检查响应的详细信息.来自RFC2616:

    10.4.10 409冲突

    由于与资源的当前状态冲突,无法完成请求.此代码仅在预期用户可能能够解决冲突并重新提交请求的情况下才允许.响应主体应该包含足够的信息供用户识别冲突的来源....

    因此,请检查您获得的完整响应($mech->content)以找出冲突发生的原因.如果这无助于检查服务器端的日志或查阅服务器端API的文档.

    在您的特定情况下,您可能需要X-Transmission-Session-Id在请求中添加标题,有关详细信息,请参阅https://forum.transmissionbt.com/viewtopic.php?f=8&t=8393.

    2022-12-18 19:41 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有