我正在尝试将 JSON 内容发布到远程 REST 端点,但是“内容”值在交付时似乎为空。所有其他标头等都被正确接收,并且 Web 服务使用基于浏览器的测试客户端成功测试。
我在下面指定“内容”字段的语法有问题吗?
$data = array("username" => "duser", "firstname" => "Demo", "surname" => "User", "email" => "example@example.com");
$data_string = json_encode($data);
$result = file_get_contents('http://test.com/api/user/create', null, stream_context_create(array(
'http' => array(
'method' => 'POST',
'header' => array('Content-Type: application/json'."\r\n"
. 'Authorization: username:key'."\r\n"
. 'Content-Length: ' . strlen($data_string) . "\r\n"),
'content' => $data_string)
)
));
echo $result;
原文由 Ben 发布,翻译遵循 CC BY-SA 4.0 许可协议
这是我一直使用的代码,它看起来非常相似(尽管这当然是针对 x-www-form-urlencoded 的)。也许你的
username:key
需要base64_encode
‘d。