首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何发布Guzzle 6异步数据

如何发布Guzzle 6异步数据
EN

Stack Overflow用户
提问于 2015-07-02 10:59:10
回答 4查看 13.6K关注 0票数 6

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

代码语言:javascript
复制
    $client = new Client();
    $request = $client->postAsync($url, [
        'json' => [
                'company_name' => 'update Name'
        ],
    ]);

但是我在终端上没有收到任何类似于post请求的请求

EN

回答 4

Stack Overflow用户

发布于 2019-02-11 14:07:37

因为它是一个promise,,所以你需要把then

并且promise不会调用,除非您将$promise->wait()

根据您的问题,这是一个使用postAsync的简单post请求:

代码语言:javascript
复制
$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);
票数 5
EN

Stack Overflow用户

发布于 2015-07-15 14:26:55

您是否已尝试发送请求?

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

代码语言:javascript
复制
$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();
票数 4
EN

Stack Overflow用户

发布于 2016-02-16 14:34:35

您最有可能需要调用wait();

$request->wait();

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31174914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档