如何发布Guzzle 6异步数据

Rah*_*ulG 5 php guzzle yii2

我尝试使用Guzzle 6(最新版)以异步方式发布数据

    $client = new Client();
    $request = $client->postAsync($url, [
        'json' => [
                'company_name' => 'update Name'
        ],
    ]);
Run Code Online (Sandbox Code Playgroud)

但是我没有收到像在终端上发布请求那样的任何请求表格

far*_*ruk 5

因为这是一个promise,你需要把then

除非你放,否则承诺不会被调用 $promise->wait()

这是postAsync根据您的问题使用的简单帖子请求:

$client = new Client();
$promise = $client->postAsync($url, [
    'json' => [
            'company_name' => 'update Name'
    ],
])->then(
    function (ResponseInterface $res){
        $response = json_decode($res->getBody()->getContents());

        return $response;
    },
    function (RequestException $e) {
        $response = [];
        $response->data = $e->getMessage();

        return $response;
    }
);
$response = $promise->wait();
echo json_encode($response);
Run Code Online (Sandbox Code Playgroud)


小智 4

您是否尝试过发送请求?

http://guzzle.readthedocs.org/en/latest/index.html?highlight=async

$client = new Client();
$request = new Request('POST', $url, [
    "json" => [
        'company_name' => 'update Name']
    ]);

$promise = $client->sendAsync($request)->then(function ($response) {
    echo 'I completed! ' . $response->getBody();
});
$promise->wait();
Run Code Online (Sandbox Code Playgroud)