今天研究了下 swoft 2.x 封装的 Swoft\Swlib\HttpClient ,没办法发送文件,可以基于 swoole 扩展的 Swoole\Coroutine\Http\Client 自已进行封装。
参考: https://wiki.swoole.com/wiki/page/899.html Client 的 addFile 函数用法。
示例:
<?php
$cli = new Swoole\Coroutine\Http\Client('www.picup.shop', 80);
$cli->setHeaders([
'APIKEY' => $this->apiKey
]);
$cli->set(['timeout' => 120]);
$cli->addFile($srcFile, 'file');
$cli->post('/api/v1/matting2?mattingType=6', []);
$cli->close();
vdump($cli->body);
附:parse_url 函数用法,最好是结合这个方法进行封装:
parse_url('https://www.picup.shop/api/v1/matting2?mattingType=6');
打印:
array(4) {
["scheme"]=> string(5) "https"
["host"]=> string(14) "www.picup.shop"
["path"]=> string(16) "/api/v1/matting2"
["query"]=> string(13) "mattingType=6"
}