cURL请求 - 我该怎么做?

时间:2011-07-05 10:06:50

标签: php api curl

有人可以指出我正确的方向如何使用以下内容:

curl "https://api.xxxxxx.com/phones/:number/calls" \
-d"call[phone_number]=<number-to-call>" \
-d"token=<api_token>" \
--insecure

我试图找到答案,但我似乎无法为我工作 - 它应该打个电话!理论上!但是找不到用PHP发送请求的方法。

谢谢, 乙

2 个答案:

答案 0 :(得分:5)

使用PHP的cURL

这样的东西
<?php
$ch = curl_init();

$data = array(
  'call[phone_number]' => '<number-to-call>', 
  'token' => '<api_token>'
);

curl_setopt($ch, CURLOPT_URL, 'https://api.xxxxxx.com/phones/:number/calls');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

curl_exec($ch);
?>

答案 1 :(得分:0)

我总是花太长时间发布lol对不起:D

<?php     

    //optional comment out or delete    
    error_reporting(E_ALL);    

    // The POST URL and parameters    
    $request =  'http://world.needforspeed.com/SpeedAPI/ws/game/nfsw/driver/'.$u.'/profile?output=xml';    

    // Get the curl session object    
    $session = curl_init($request);    

    // Set the POST options.     
    curl_setopt($session, CURLOPT_HEADER, true);    
    curl_setopt($session, CURLOPT_RETURNTRANSFER, true);    

    // Do the POST and then close the session    
    $response = curl_exec($session);    
    curl_close($session);    

    // Get HTTP Status code from the response    
    $status_code = array();    
    preg_match('/\d\d\d/', $response, $status_code);    

    // Check for errors    
    switch( $status_code[0] ) {    
        case 200:    
            // Success    
            break;    
        case 503:    
            die('Service unavailable. An internal problem prevented us from returning data to you.');    
            break;    
        case 403:    
            die('Forbidden. You do not have permission to access this resource, or are over your rate limit.');    
            break;    
        case 400:    
            // You may want to fall through here and read the specific XML error    
            die('Bad request. The parameters passed to the service did not match as expected. The exact error is returned in the XML response.');    
            break;    
        default:    
            die('Your call returned an unexpected HTTP status of:' . $status_code[0]);    
    }    

    // Get the XML from the response, bypassing the header    
    if (!($xml = strstr($response, '<?xml'))) {    
        $xml = null;    
    }    

    // Output the XML    

    $worldDriverprofile = simplexml_load_string($xml);    

        $playername = $worldDriverprofile['name'];    
        $playerlevel = $worldDriverprofile['level'];    
        $playermessage = $worldDriverprofile['statusMessage'];      
        $playerimage = $worldDriverprofile['image'];
        $playerdefault = $worldDriverprofile['defaultPersona'];

    echo "Driver Name: $playername <br />";    
    echo "Level: $playerlevel <br />";     
    echo "Message: $playermessage <br />";
?>

这适用于速度世界需要的SpeedAPI,但你可以改变你正在呼叫的wahtever xml。