首页 > 解决方案 > 使用 WWW::Mechanize 将 JSON 消息发送到服务器

问题描述

我正在尝试使用 HTTP PUT 将 JSON 消息发送到服务器,但我收到一条错误消息:

错误 PUTing https://www.example.com/records:./script.pl第 190 行的不可处理实体。

这条消息是什么意思?是来自 Perl 还是来自服务器(我假设是 Perl,因为它给了我一个行号)。

这就是脚本正在做的事情(在所有步骤中使用相同的机械化对象):

我正在使用 CentOS 7.5 并安装了截至今天的所有更新。

以下是最后两个步骤的摘录。

my $json_text;

# Some logic here to fill the string

print $json_text . "\n";
$mech->content_type( 'application/json' );
$mech->put ( $url, content => $json_text );

打印语句输出:

{"record":{"webspace":false,"ttl":600,"filter_value":"test.com","abc_record_type":null,"formId":12345678,"standard_value":false,"area":"test.com","address":"12.12.12.12","id":12345678,"type":"A","sub_area":""},"area_lock_state":{"area_locked":false,"email_locked":false}}

我在 JSON 对象中没有发现任何问题。您是否有任何指示或关于如何使用 Mechanize 放置此对象?

标签: jsonperlmechanize

解决方案


httpstatuses.com 说这个

服务器理解请求实体的内容类型(因此415 Unsupported Media Type状态码是不合适的),并且请求实体的语法是正确的(因此400 Bad Request状态码是不合适的)但无法处理包含的指示。

所以服务器对 JSON 的语法很满意,但语义无效。从你提供的信息中我只能说这些


推荐阅读