2013-11-26 57 views
0

我想通過HTTP POST將JSON數組發送到API,獲取響應並打印它。HTTP POST使用PHP/CURL的JSON數組

我嘗試使用cURL來做到這一點,但它似乎沒有工作。 我只是得到零響應,一個空白頁。

我的要求:

<?php 
$data = array(
    "login" => "myLogin", 
    "password" => "myPassword", 
    "id" => "12345", 
    "tag" => "test" 
    );                  

$json_data = json_encode($data);                     


$ch = curl_init('URL/api/mylogin');                  
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); 
curl_setopt($ch, CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array(                   
'Content-Type: application/json',                     
'Content-Length: ' . strlen($json_data))                  
);                             

$output = curl_exec($ch); 

$result = json_decode($output); 

echo $result; 

?> 

我應該得到的迴應:

{"status": 200, "message": "OK", "login_key": "abcdefh532h235yh"} 

任何想法,爲什麼我沒有得到任何迴應?

(此工作正常,當我手動測試使用測試REST客戶端)

+0

嘗試使用'echo curl_getinfo($ ch,CURLINFO_HTTP_CODE);'在curl_exec之後查看它說了什麼。 –

+0

你試過我的解決方案嗎? @rani –

+0

Wayne Whitty - 我做到了,它說「0」......不確定這意味着什麼。 – Rani

回答

1

試試這個@rani現在你可以得到響應。

$url = 'URL/api/mylogin'; 
    $ch = curl_init($url); 

//curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // RETURN THE CONTENTS OF THE CALL 
curl_setopt($ch, CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); 
//curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); 
curl_setopt($ch, CURLOPT_USERPWD, 'myLogin'.':'.'myPassword'); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data); 

$response = curl_exec($ch); 
curl_close($ch); 
echo $response; 

或傳遞密碼作爲CURLOPT_USERPWD中的密碼。

+0

這也返回空白頁。 順便說一句我實際上不確定我查詢的服務器是否支持「CURLOPT_USERPWD」。 – Rani

+0

@ Rani..ohh然後確定第一? –

+0

用戶名和密碼不能以常規鍵值傳遞:value? – Rani