繁体   English   中英

用-G将cURL请求转换为PHP

[英]Translating cURL request with -G to PHP

我正在尝试使用本教程中详细介绍的Facebook Marketing API。

但是我很困惑如何将建议的cURL命令行请求转换为等效的PHP:

curl -G \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.5/<LEAD_ID>

我通常会这样做:

$ch = curl_init();

curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$access_token);

$result = curl_exec($ch);

但这会在尝试运行它时产生“不受支持的发布请求”错误。 我想我误解了命令行版本中的“ -G”是什么意思?

男子卷曲

-G,--get

使用此选项时,将使用-d,--data,--data-binary或--data-urlencode指定的所有数据用于HTTP GET请求中,而不要使用否则将使用的POST请求。 数据将以'?'附加到URL。 分隔器。

PHP中没有与之直接对应的cURL选项标志 您可以使用

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

要么

curl_setopt($ch, CURLOPT_HTTPGET, 'GET');

但这几乎没有必要:

CURLOPT_HTTPGET

TRUE将HTTP请求方法重置为GET。 由于GET是默认设置,因此只有在更改了请求方法的情况下才需要这样做。

您将必须以不同的方式指定请求参数:而不是设置CURLOPT_POSTFIELDS ,而是将它们作为查询字符串附加到URL(如果需要,使用urlencode或等效的curl_escape ):

curl_setopt( $ch, CURLOPT_URL, $url . '?accesstoken='.urlencode('<ACCESS_TOKEN>');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM