我已经能够使用chrome的Advanced Rest Client Extension将POST查询发送到特定的URL以及以下代码:
作为标题,我输入了这个:
Accept: application/json
version: 1.0.2
Authorization: code sadkj4-sadj-as22-asdk2
身体:
{
"email" : "$email", <====PHP variable passed as argument
"password" : "$password", <====PHP variable passed as argument
"UserVerified" : true,
"notificationOption" :
[
{
"notificationType" : "NOTIFICATION1",
"enabled" : true
},
{
"notificationType" : "NOTIFICATION2",
"enabled" : false
},
{
"notificationType" : "NOTIFICATION3",
"enabled" : true
},
{
"notificationType" : "NOTIFICATION4",
"enabled" : true
},
{
"notificationType" : "NOTIFICATION5",
"enabled" : true
},
{
"notificationType" : "NOTIFICATION6",
"enabled" : true
}
],
"cap":"uc",
"GeneratedPassword":true
}
并将Content-Type设置为:application / json
我通过发送请求的URL成功获得响应,但现在我想创建一个PHP函数,只需传递值$ email和$ password作为参数即可。
我听说有人说我应该使用guzzle来完成这项任务,但我不知道怎么做,而且如果我不需要,我也不想使用第三方库。有没有其他方法可以做到这一点? 任何有关这方面的帮助将不胜感激。
答案 0 :(得分:0)
你需要一个HTTP客户端库与web服务器交互,guzzle就是其中之一,另一个例子是Zend \ Http。如果你在没有库的情况下这样做可能会很麻烦,因为你必须自己管理HTTP标题,正文,网址等。
下一个最简单的方法是使用PHP curl库,硬核方法是使用PHP套接字实现所有内容。
答案 1 :(得分:0)
如果可能,请使用cURL
。在$json_string_data
$json_string_data = '{"email" : "' . $email . '", "password" : "' . $password . '", ...}';
$ch = curl_init('http://your_api_url');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_string_data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'version: 1.0.2',
'Authorization: code sadkj4-sadj-as22-asdk2',
'Content-Length: ' . strlen($json_string_data))
);
$result = curl_exec($ch);