2014-05-20 43 views
0

我的要求是在PHP頁面中編寫一個curl腳本來將數據發佈到外部API。我設法寫了一個腳本,但我不知道它是如何將會話參數作爲頭傳遞的。使用我的代碼示例獲取授權失敗。請幫我解決這個問題。由於Php捲曲腳本將數據發佈到API

$sessionID = 's%3A1pdDOimttaCJ1CwgtCxXDUQx.rH79R87KzV9QWFFOYQwKDaxT2Nu8zhBerDxjs2y0JiM'; 
$post_id = 'gmXmJiVDSgSB6BRrkbkLdA'; 
$approval_status = 'approved'; 
$data = array(
    'approval_status'=> $approval_status, 
    'post_id' => $post_id 
); 
$session = array (
    'sessionID' => $sessionID 
); 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_HEADER, TRUE); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $session); 
curl_setopt($ch, CURLOPT_POST, TRUE); 
curl_setopt($ch, CURLOPT_URL, "http://192.168.2.2:7082/approve-posts"); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
$result = curl_exec($ch); 
echo "response". $result; 
curl_close($ch); 
+0

API如何表示應該傳遞會話ID? – WizKid

+0

http://www.php.net/manual/en/function.curl-setopt.php'CURLOPT_HTTPHEADER'值應該是一個數組。 '$ sessionID'也必須在'HeaderName:HeaderValue'格式 – Ejaz

+1

它是什麼API?如果我們知道這一點,我們可以嘗試訪問文檔以給出更好的答案 –

回答

0

隨着CURLOPT_POST第三個參數是查詢字符串。

curl_setopt($ ch,CURLOPT_POST,http_build_query($ data));

並用CURLOPT_POSTFIELDS第三個參數是在後的數據字段的數目。

curl_setopt($ ch,CURLOPT_POST,count($ data));