【问题标题】:How can send params array in curl get request如何在 curl 获取请求中发送参数数组
【发布时间】:2021-12-03 14:47:59
【问题描述】:

我有一个参数数组,我在 CURL 获取请求中发送,但没有得到我检查过的参数。 我想在 curl 获取请求中发送这些参数(键,值),但不发送空数据

这是我的代码,你可以看到

$params = [];

foreach($product_data->params as $param) {

    array_push($params, $param);
}

$curl = curl_init($product_data_url);

$headers = [
    'Content-Type: application/json',
    'Authorization: Bearer ' . $token,
];

curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);

curl_setopt($curl, CURLOPT_URL, $product_datat_url);

curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "GET");   
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($params)); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);


$resp = curl_exec($curl);
if($resp === false)
{
    echo "Error Number:".curl_errno($curl)."<br>";
    echo "Error String:".curl_error($curl);
}
curl_close($curl);

return $resp;

【问题讨论】:

  • 你有什么理由不使用 guzzle 吗?

标签: php laravel curl


【解决方案1】:

首先你在这一行有一个错字:

curl_setopt($curl, CURLOPT_URL, $product_datat_url);

$product_datat_url 应该是$product_data_url

其次,您尝试在get请求中发送post请求参数的另一个问题,众所周知,get请求参数出现在url中,例如:url?param1=value&amp;param2=value,因此您应该在设置url之前添加以下内容:

$url = $product_data_url . '?' . http_build_query($params);
curl_setopt($curl, CURLOPT_URL, $url);

并删除这一行:

curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($params));

【讨论】:

    猜你喜欢
    • 2018-06-29
    • 1970-01-01
    • 2014-08-17
    • 2018-07-07
    • 2019-08-21
    • 1970-01-01
    • 2019-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多