Php CloudMQTT-API-Guzzle
我无法将卷曲转换为狂饮请求。 在文档中,要创建用户,我只需发布:Php CloudMQTT-API-Guzzle,php,laravel,api,mqtt,guzzle,Php,Laravel,Api,Mqtt,Guzzle,我无法将卷曲转换为狂饮请求。 在文档中,要创建用户,我只需发布: $ curl -XPOST -d '{"username":"test", "password":"super_secret_password"}' -H "Content-Type:application/json" -u "$CLOUDMQTT_USER:$CLOUDMQTT_PASSWORD" https://api.cloudmqtt.com/user 在我的项目中,我不能使用curl,所以我使用
$ curl -XPOST -d '{"username":"test", "password":"super_secret_password"}' -H "Content-Type:application/json" -u "$CLOUDMQTT_USER:$CLOUDMQTT_PASSWORD" https://api.cloudmqtt.com/user
在我的项目中,我不能使用curl,所以我使用guzzle:
$client = new Client();
$res = $client->post('https://api.cloudmqtt.com/user', ['auth' => ['xxx', 'xxx'], 'body' => ["username"=>"user", "password"=>"super_secret_password"]]);
当用户被创建时,我可以在面板上的用户列表中看到新用户,但服务器在创建用户时响应500。我做错了什么?也许我的狂饮请求格式不对?我不知道
链接到API这将匹配您的Guzzle请求和curl请求,尽管我不能肯定这将解决您的500错误:
$client = new Client([
'headers' => [ 'Content-Type' => 'application/json' ]
]);
$response = $client->post('https://api.cloudmqtt.com/user',
[
'auth' => ['xxx', 'xxx'],
'body' => json_encode(
[
"username"=>"user",
"password"=>"super_secret_password"
]
)
]
);
这里的区别包括设置内容类型头和将主体编码为json而不是数组(在这里可能没有效果?)
编辑:
看起来json
参数会自动为您设置标题和json\u encode
正文:
$client = new Client();
$response = $client->post('https://api.cloudmqtt.com/user',
[
'auth' => ['xxx', 'xxx'],
'json' =>
[
"username"=>"user",
"password"=>"super_secret_password"
]
]
);
cURL error 18:传输结束,剩余未完成的读取数据,仍然为500:(这是Guzzle的答案吗?我稍微修改了我的答案,但在功能上不应该与我原来的答案有任何不同。无论如何,请尝试一下,以防万一。哇,伙计,这让我非常兴奋!它响应200并创建了用户!@MaoStream如果你使用body,你将必须为作为body的json数据正确设置标题。如果你使用json,我t将为您设置标题。