如何在给定以下HTTP + JSON的情况下使用PHP发出POST请求

时间:2016-06-27 20:16:45

标签: php json rest post get

我一直在尝试使用PHP发送一个名为WorkWave API的POST请求。这是他们提供的用于发出POST请求以设置应用程序回调URL的代码:

POST /api/v1/callback HTTP/1.0
Accept: application/json
X-WorkWave-Key: YOUR API KEY
Host: wwrm.workwave.com
Content-Type: application/json

{
  "url": "https://my.server.com/new-callback",
  "signaturePassword": "g394g732vhsdfiv34",
  "test": true
}

我对处理POST和GET请求非常陌生,所以我真的不明白这里发生了什么。 究竟是什么键和键? JSON括号以上的值? 我如何将这里给出的内容翻译成PHP,以及在这样做时最重要的事情是什么?

1 个答案:

答案 0 :(得分:3)

第一个blob是您需要随请求一起发送的标头。 JSON是邮政体有效载荷。

<?php

$url = 'https://wwrm.workwave.com/api/v1/callback';

$data = '
{
  "url": "https://my.server.com/new-callback",
  "signaturePassword": "g394g732vhsdfiv34",
  "test": true
}
';

$additional_headers = array(                                                                          
   'Accept: application/json',
   'X-WorkWave-Key: YOUR API KEY',
   'Host: wwrm.workwave.com',
   'Content-Type: application/json'
);

$ch = curl_init($url);                                                                      
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                                                                     
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);                                                                  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                                                                      
curl_setopt($ch, CURLOPT_HTTPHEADER, $additional_headers); 

$server_output = curl_exec ($ch);

echo  $server_output;
相关问题