如何将此curl请求转换为PHP?

时间:2017-10-23 04:40:24

标签: php curl

我正在尝试集成产品,示例curl请求如下。

curl https://a.klaviyo.com/api/v1/lists -G \
  -d api_key=pk_e29b4ec921f6aed9a70eb1e6993bb5caed

我不明白的是-G和-d表示什么以及如何将此请求转换为PHP代码?

3 个答案:

答案 0 :(得分:1)

-G代表获取请求,-d代表传递给获取的数据

在php中你做

file_get_contents('https://a.klaviyo.com/api/v1/lists?api_key=pk_e29b4ec921f6aed9a70eb1e6993bb5caed');

答案 1 :(得分:0)

试试这段代码

 $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'https://a.klaviyo.com/api/v1/lists?api_key=pk_e29b4ec921f6aed9a70eb1e6993bb5caed');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    $response = curl_exec($ch);     
    curl_close($ch);
    // Decode the response into a PHP associative array
    $response = json_decode($response, true);   
    echo "<pre>";print_r($response);

答案 2 :(得分:0)

-G - 获取

使用时,此选项将生成

  

使用-d, - data, - data-binary或--data-urlencode指定的所有数据   用于HTTP GET请求而不是POST

请求否则将被使用。数据将通过&#39;?&#39;附加到网址上。分离器。

如果与-I, - head结合使用,POST数据将被替换为带有HEAD请求的URL。

如果多次使用此选项,则仅使用第一个选项。这是因为撤消GET没有意义,但是您应该强制执行您喜欢的替代方法。

$ch = curl_init();

$data = array('api_key'=>"pk_e29b4ec921f6aed9a70eb1e6993bb5caed");
curl_setopt($ch, CURLOPT_URL, "https://a.klaviyo.com/api/v1/lists");
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_HTTPGET, 1);

$output = curl_exec($ch);
$info = curl_getinfo($ch);