php
  • curl
  • 2013-07-05 101 views 0 likes 
    0

    我設法讓我的請求「高級REST客戶端」的工作使用以下設置:如何發佈JSON與PHP和curl?

    enter image description here

    不過,我嘗試使用PHP來重建相同的請求,我不知道是什麼我做錯了。這裏是我有什麼:

    $config['key'] = "xxxxxxxxxxxx"; 
    $config['clientid'] = xxxxxxxxx; 
    
    $url = 'http://xxxxxxxxxxxxxxxx.curdbee.com/invoices.json?api_token='.$config['key']; 
    
    $data = Array(); 
    $data['invoice']['client_id'] = $config['clientid']; 
    
    $data_string = json_encode($data);                     
    
    $ch = curl_init($url);                  
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                  
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);                 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                  
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(                   
        'Content-Type: application/json',                     
        'Content-Length: ' . strlen($data_string))                  
    );                             
    
    $result = curl_exec($ch); 
    
    echo curl_error($ch); 
    
    print_r($result); 
    

    $ result和curl_error都不輸出任何東西,我不知道爲什麼。

    +1

    可能會添加cookie接受json和更多標題,如瀏覽器。檢查整個原始http請求並查看詳細信息。 – Robert

    +0

    var_dump(curl_getinfo($ ch))的結果是什麼? – Pattle

    +0

    @Pattle http://pastebin.com/yKrithcS – James

    回答

    0

    我只是需要加入以下兩行:

    curl_setopt($ CH,CURLOPT_SSL_VERIFYHOST,FALSE);
    curl_setopt($ ch,CURLOPT_SSL_VERIFYPEER,false);

    -1

    試試這個

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url);                  
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                  
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);                 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                  
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(                   
        'Content-Type: application/json',                     
        'Content-Length: ' . strlen($data_string))                  
    ); 
    
    +0

    這正是我正在做的...... – James

    相關問題