2016-04-04 6 views
0

カールリクエストをサーバに送信するためにPHPでループを構築しています。私はJSONを送信し、JSONに含まれるパラメータを出力するレポートを返すことを望んでいます。 $結果は(私がイテレータとして使用しています)認証トークンを含む2次元配列であるPHPカールリクエストループなし出力

$json = '{"report":{"special_pixel_reporting":false,"report_type":"network_analytics","timezone":"EST5EDT","start_date":"2016-03-01 00:00:00","end_date":"2016-04-01 00:00:00","filters":[{"seller_member_id":["273"]}],"columns":["imps","cost"],"row_per":[],"pivot_report":false,"fixed_columns":[],"show_usd_currency":false,"orders":["imps","cost"],"name":"Network Analytics Report - 04\/4\/2016","ui_columns":["imps","cost"],"filter_objects":[]}}'; 

foreach ($results as $k => $v) { 
$ch = curl_init('https://api.appnexus.com/report'); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $json); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Authorization:'.$v['token'], 
    'Content-Type: application/json')); 
$output = curl_exec($ch); 
var_dump($output); 
}; 

を次のように私のコードです。私は各トークンの出力を返すことを期待していますが、サーバーから応答を得ることはできません。

私は本質的にPHPでこのカール要求を複製しようとしています。

curl -X POST -d '{"report":{"special_pixel_reporting":false,"report_type":"network_analytics","timezone":"EST5EDT","start_date":"2016-03-01 00:00:00","end_date":"2016-04-01 00:00:00","filters":[{"seller_member_id":["273"]}],"columns":["imps","cost"],"row_per":[],"pivot_report":false,"fixed_columns":[],"show_usd_currency":false,"orders":["imps","cost"],"name":"Network Analytics Report - 04\/4\/2016","ui_columns":["imps","cost"],"filter_objects":[]}}' --header "Authorization:[AUTH HERE]" https://api.appnexus.com/report 

私のPHPコードが出力を返さない理由について助言をお持ちの方はいらっしゃいますか?

+0

とカールエラーをチェックする必要がありますか? – Mihai

+0

デバッグに 'CURLOPT_VERBOSE'オプションを使用することをお勧めします。詳細情報を取得するのに役立つPHPエラーがない場合は、 –

答えて

0

おそらくあなたは、あなたがforeachのなしでそれを行う場合は、同じことを得るのですかcurl_error()

<?php 
$json = '{"report":{"special_pixel_reporting":false,"report_type":"network_analytics","timezone":"EST5EDT","start_date":"2016-03-01 00:00:00","end_date":"2016-04-01 00:00:00","filters":[{"seller_member_id":["273"]}],"columns":["imps","cost"],"row_per":[],"pivot_report":false,"fixed_columns":[],"show_usd_currency":false,"orders":["imps","cost"],"name":"Network Analytics Report - 04\/4\/2016","ui_columns":["imps","cost"],"filter_objects":[]}}'; 

foreach ($results as $k => $v) { 
    $ch = curl_init('https://api.appnexus.com/report'); 
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $json); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
     'Authorization:'.$v['token'], 
     'Content-Type: application/json')); 

    $output = curl_exec($ch); 

    if($output === false){ 
     echo 'Curl error: ' . curl_error($ch); 
    } 
    else{ 
     var_dump($output); 
    } 
    curl_close($ch); 
} 
+0

Curl_error()は、SSL証明書を取得する際に問題が発生したことを示すことができたので、プロトコルをhttpsからhttpに変更して動作させました。どうもありがとう! –