猿问

swoole_http_client调用addfile后post,数组被转成Array字符串,服务端不能正常获取数据?

客户端centos6.9、php7.1.21使用swoole_http_client通过post数据和上传文件到服务端:

$data = [
    'p1' => 1,
    'p2' => 2,
    'groups' => [20,30]
];

$cli->addFile('/home/test/photo.jpg', 'photo');

$cli->post('/index.php', $data, function ($cli) {
    echo $cli->body;
});

服务端centos6.9、php7.1.21、apache2.2.15普通web应用:index.php

var_export($_POST);
exit;

结果打出来的数据是:(数组被转成'Array'!!!)

array(
    'p1' => 1,
    'p2' => 2,
    'groups' => 'Array'
)

但是我期望的是:

array(
    'p1' => 1,
    'p2' => 2,
    'groups' => array(20,30)
)   

以上,请问是哪里使用存在问题,还是swoole_http_client本身问题?

如果不调用addFile文件则结果是正常的,swoole文档中有说一般post是application/x-www-form-urlencoded,使用addFile后会被转成form-data,是不是swoole转的时候有问题?

ibeautiful
浏览 619回答 1
1回答
随时随地看视频慕课网APP
我要回答