簡體   English   中英

如何在 WordPress 中使用 cURL 發送 POST 請求?

[英]How to send POST request with a cURL in WordPress?

我需要向 Cloudflare API 發送一個 POST 請求,他們的 API 示例是:

curl -X POST "https://api.cloudflare.com/client/v4/zones/023e105f4ecef8ad9ca31a8372d0c353/purge_cache" \
     -H "X-Auth-Email: user@example.com" \
     -H "X-Auth-Key: c2547eb745079dac9320b638f5e225cf483cc5cfdda41" \
     -H "Content-Type: application/json" \
     --data '{"purge_everything":true}

我一直在嘗試從我的 functions.php 文件發出 POST 請求。 這是我的代碼:

$curl = curl_init();
curl_setopt( $curl, CURLOPT_URL, 'my_url' );
curl_setopt( $curl, CURLOPT_POST, true );
curl_setopt( $curl, CURLOPT_HTTPHEADER, array(
            'X-Auth-Email' => 'my_email',
            'X-Auth-Key' => 'cf_api_key',
            'Content-Type' => 'application/json',
        ));
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode( '{"purge_everything":true}' ));
$result = curl_exec($curl);
curl_close($curl);

    var_dump($result);

我收到了這個回復

'''{"success":false,"errors":[{"code":9106,"message":"Missing X-Auth-Key, X-Auth-Email or Authorization headers"}]} bool(true) '''

我應該在哪里以及如何放置我的 X-Auth-Key 等?

您必須使用 httpheader 數組作為單個值,用雙點分隔,而不是作為鍵值對:

請看這個例子:

$curl = curl_init();
curl_setopt( $curl, CURLOPT_URL, 'my_url' );
curl_setopt( $curl, CURLOPT_POST, true );
curl_setopt( $curl, CURLOPT_HTTPHEADER, array(
            'X-Auth-Email: my_email',
            'X-Auth-Key: cf_api_key',
            'Content-Type: application/json',
        ));
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_POSTFIELDS, ["purge_everything"=>true] );
$result = curl_exec($curl);
curl_close($curl);

    var_dump($result);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM