php curl post请求出现提示Array to string conversion

通过curl对接口发起post请求的时候很少会遇到请求数据是二维数组的情况,一般情况下只需要按照正常的方式发送请求就可以了,可能的代码如下:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$result = curl_exec($ch);

if ($result) {
    curl_close($ch);

    $res_data = json_decode($result, true);

    echo '
';
    print_r($res_data);
    echo '
'; } else { $error = curl_errno($ch); echo 'curl出错,错误码('.$error.')'; curl_close($ch); }

但是当请求的数据是$data是二维数组的时候,php就会提示Array to string conversion,这个时候需要使用函数http_build_query()来处理$data,调整后的代码为:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));

$result = curl_exec($ch);

if ($result) {
    curl_close($ch);

    $res_data = json_decode($result, true);

    echo '
';
    print_r($res_data);
    echo '
'; } else { $error = curl_errno($ch); echo 'curl出错,错误码('.$error.')'; curl_close($ch); }

这样提示信息就不会再出现了。

你可能感兴趣的:(php curl post请求出现提示Array to string conversion)