PHP cURL将数组传递给CURLOPT_POSTFIELDS

时间:2017-08-01 19:56:25

标签: php curl

我有以下可正常工作的cURL PHP函数

null

我想手动构建CURLOPT_POSTFIELDS,所以试图传递一个数组,就像这样......

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://example.com/api",
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_POSTFIELDS =>  "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"api\"\r\n\r\n123344\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--",
    CURLOPT_HTTPHEADER => array(
        "cache-control: no-cache",
        "content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW"
    ),
));

但这并没有给我任何回应,有人能指出我做错了吗?

2 个答案:

答案 0 :(得分:1)

您还可以将http_build_query()用于发布数据

URLOPT_POSTFIELDS => http_build_query($data)

答案 1 :(得分:0)

http://php.net/manual/en/function.curl-setopt.php

  

如果value是数组,则Content-Type标头将设置为multipart/form-data

所以不要自己动手,让cURL来处理它。

它知道multipart/form-data如何工作,并将为您创建包含边界的请求体。