2016-06-27 54 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規範不一定需要,但對服務器仍然有用。這並不是說這些頭部先於請求,他們是請求的一部分。並非每個請求都需要有一個主體或數據有效載荷。您對圖片的要求是正確的。 –