【问题标题】:Translate command CURL to PHP CURL? Cloudflare API将命令 CURL 转换为 PHP CURL? Cloudflare API
【发布时间】:2015-08-07 06:29:24
【问题描述】:

我正在尝试通过 PHP CURL 使用 CloudFlare API,但是文档示例显示为命令行 curl。

$ curl -X PUT "https://api.cloudflare.com/client/v4/zones/9a7806061c88ada191ed06f989cc3dac/dns_records/9a7806061c88ada191ed06f989cc3dac" \
-H "X-Auth-Email: user@example.com" \
-H "X-Auth-Key: c2547eb745079dac9320b638f5e225cf483cc5cfdda41" \
-H "Content-Type: application/json" \
--data '{"id":"9a7806061c88ada191ed06f989cc3dac","type":"A","name":"example.com","content":"1.2.3.4","proxiable":true,"proxied":false,"ttl":120,"locked":false,"zone_id":"9a7806061c88ada191ed06f989cc3dac","zone_name":"example.com","created_on":"2014-01-01T05:20:00.12345Z","modified_on":"2014-01-01T05:20:00.12345Z","data":{}}'

PUT 请求是否与 POST 相同?底部的数组让我感到困惑。不知道这如何转化为 PHP CURL。

【问题讨论】:

  • 一个可爱的方法是将不带$的命令放入shell_exec()

标签: php curl cloudflare


【解决方案1】:

您需要发布帖子,但还需要发送自定义请求。然后 curl 会做一个 post style put

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");  
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); 

然后根据需要添加标题

curl_setopt($ch, CURLOPT_HTTPHEADER, [array of your headers]);

将数组改为键值数组,其中key为header名称,value为header值

【讨论】:

  • 所以 $data 是来自 --data 的数组?
  • 并且标头数组是上面请求中的 -H 标记字符串?
  • 是的,如果它更容易你也可以发布字符串版本?但显然它比数组更难编辑
  • 是的,每个 -H 行都可以替换为数组中的键和值
猜你喜欢
  • 2019-06-04
  • 1970-01-01
  • 1970-01-01
  • 2017-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-23
相关资源
最近更新 更多