2016-06-27 26 views
0

我一直在尝试使用名为WorkWave API的东西进行POST请求。这是他们提供了用于制作POST请求设置应用程序的回调URL代码:我是很新,处理POST和GET请求如何使用PHP给出以下HTTP + JSON POST请求

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 
} 

,所以我真的不明白是怎么回事。 什么是密钥&价值之上的JSON括号? 如何将PHP中给出的内容翻译成PHP,以及在这种情况下理解哪些最重要的内容?

回答

1

第一个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; 
+0

或者你可以使用[guzzle](http://docs.guzzlephp.org/en/latest/)这是一个非常流行和干净的包装原始'curl'请求。 – Pevara

+0

好酷,所以这些标题是请求前的信息,是否正确?假设我想要提供图片请求,我必须指定我想要在标题中获取特定资源吗?当你想要获取数据时,对数据库的查询是否也使用头文件,或者与完成GET/POST请求完全分开? – 10000RubyPools

+0

@ 10000R,数据库查询与HTTP请求完全无关。每次访问网站时,都会发出HTTP请求。每个请求*务必*有一个头,其中*必须*包括一些必填字段,如URL。 Curl将这些要求构建到请求对象中。 'CURLOPT_HTTPHEADER'用于额外的头文件,HTTP规范不一定需要,但对服务器仍然有用。这并不是说这些头部先于请求,他们是请求的一部分。并非每个请求都需要有一个主体或数据有效载荷。您对图片的要求是正确的。 –