我正在尝试使用 HTTP PUT 向服务器发送 JSON 消息,但收到一条错误消息:
错误 PUTing https://www.example.com/records:./script.pl 行 190 处的无法处理的实体。
此消息是什么意思?它是来自Perl还是来自服务器(我假设Perl,因为它给了我一个行号(。
这是脚本正在执行的操作(在所有步骤中使用相同的机械化对象(:
- 获取"www.example.com"(确定(
- 将凭据发布到登录表单(正常(
- 获取"https://www.example.com/records"(确定(
- 解码收到的 JSON(显示正常(
- 创建一个名为 $json_text 的新 JSON 字符串(显示为"确定"(
- 将 $json_text 放入"https://www.example.com/records"(错误(
我使用的是 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 对象中没有看到任何问题。你有任何指示或如何使用机械化来放置这个对象吗?
httpstatuses.com
这样说
415 不支持的媒体类型状态代码不合适(,并且请求实体的语法正确(因此400 错误请求状态代码不合适(,但无法处理包含的指令。
因此,服务器对您的 JSON 语法感到满意,但语义无效。这就是我从你提供的信息中所能说的