使用cURL请求REST api

时间:2016-08-25 13:20:27

标签: rest laravel curl

我正在尝试使用cURL对RESTapi执行put请求。我能够做到发布请求。但PUT无法正常工作

我使用了以下代码

public function callTeamworkPutApi($secretApiKey, $apiCallString,$param)
{
        //cURL
    $password = "xxx";
    $channel = curl_init();
    //options

    curl_setopt($channel, CURLOPT_URL, "http://projects.abounde.com/".$apiCallString); // projects.json?status=LATE gets all late projects
    $headers = array();
    $headers[] = "Authorization: Basic " . base64_encode($secretApiKey . ":" . $password);
    $headers[] = "Content-Type: application/json";
    curl_setopt($channel, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($channel, CURLOPT_PUT, true);                                                                     
    //curl_setopt($channel, CURLOPT_POSTFIELDS, $comment);
    curl_setopt($channel, CURLOPT_PUTFIELDS, $param);
    // curl_setopt($channel, CURLOPT_RETURNTRANSFER, true);


    $msg = curl_exec($channel);
    $tester =var_dump(curl_getinfo($channel));
    curl_close($channel);

    //var_dump($msg);

    return response()->json(['res'=>$tester]);


}

错误:

enter image description here

任何想法?

1 个答案:

答案 0 :(得分:1)

今天就这样做了。这是示例代码。

$data = array("a" => $a);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query($data));

$response = curl_exec($ch);

if (!$response) 
{
    return false;
}

src:http://www.lornajane.net/posts/2009/putting-data-fields-with-php-curl