2016-11-21 92 views
-1

如何使用json在curl中創建HTTP REQUEST?curl中的HTTP請求

我需要把這個捲曲的PHP:

POST /api/ra/v1/ping HTTP/1.0 
Host: app.kigo.net 
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ= 
Content-Type: application/json 
{ 
"PING" : "PONG" 
} 

提前感謝!

編輯

這是我嘗試過,但它顯示 「無效的Content-Type頭。」:

<?php 
$url = 'https://app.kigo.net/api/ra/v1/ping'; 
$headers = array('Authorization' => 'Basic dXNlcm5hbWU6cGFzc3dvcmQ=', 'Content-Type' => 'application/json'); 
$ch = curl_init(); 
curl_setopt($ch,CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
curl_setopt($ch,CURLOPT_POSTFIELDS, "PING=PONG"); 
$result = curl_exec($ch); 
curl_close($ch); 
print_r($result); 
?> 
+1

請提供您的嘗試。 –

+1

互聯網上有很多例子。只要做一些搜索,嘗試一些並回來,如果你有一些問題。 –

+0

Felippe,我整天都在做研究,仍然無法弄清楚 – Casper

回答

0

CURLOPT_HTTPHEADER數組必須是形式array('Header1: value1', 'Header2: value2')而不是array('Header1' => 'value1', 'Header2' => 'value2') ,請參閱http://php.net/manual/en/function.curl-setopt.php中的示例

另外,如果您發佈的是JSON數據,那麼您應該發送的數據可能是json_encode()

$headers = array(
    'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=', 
    'Content-Type: application/json' 
); 

$postData = json_encode(array(
    'PING' => 'PONG' 
)); 

$ch = curl_init(); 
curl_setopt($ch,CURLOPT_URL, 'https://app.kigo.net/api/ra/v1/ping'); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch,CURLOPT_POSTFIELDS, $postData); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
$result = curl_exec($ch);