zoukankan      html  css  js  c++  java
  • Guzzle 一个PHP的HTTP客户端

    Guzzle是一个PHP的HTTP客户端,用来轻而易举地发送请求,并集成到我们的WEB服务上。

    https://github.com/guzzle/guzzle

    • 接口简单:构建查询语句、POST请求、分流上传下载大文件、使用HTTP cookies、上传JSON数据等等。
    • 发送同步或异步的请求均使用相同的接口。
    • 使用PSR-7接口来请求、响应、分流,允许你使用其他兼容的PSR-7类库与Guzzle共同开发。
    • 抽象了底层的HTTP传输,允许你改变环境以及其他的代码,如:对cURL与PHP的流或socket并非重度依赖,非阻塞事件循环。
    • 中间件系统允许你创建构成客户端行为。
    $client = new GuzzleHttpClient();
    $res = $client->request('GET', 'https://api.github.com/user', [
        'auth' => ['user', 'pass']
    ]);
    echo $res->getStatusCode();
    // "200"
    echo $res->getHeader('content-type');
    // 'application/json; charset=utf8'
    echo $res->getBody();
    // {"type":"User"...'
    
    // 发送一个异步请求

    /异步

    //异步
        

    use PsrHttpMessageResponseInterface;
    use GuzzleHttpExceptionRequestException;

    
    

    $client = new GuzzleHttpClient([
    //'verify', '/path/to/cacert.pem'
    //'timeout' => 1,
    'verify' => false
    ]);

            $request = new GuzzleHttpPsr7Request('GET', 'http://127.0.0.1/a.php?a=121q');
            $promise = $client->sendAsync($request)->then(
                
                function (ResponseInterface $res) {
                    echo $res->getStatusCode() . "
    ";
                },
                function (RequestException $e) {
                    //echo $e->getMessage() . "
    ";
                    //echo $e->getRequest()->getMethod();
                }
            
            );        
            echo 'hi';        
            $promise->wait();   //不运行这里,则不会异步访问。此处的异步还是需要等待执行完。
     
  • 相关阅读:
    SRM 551 div2
    HDU_4390 Number Sequence (容斥原理)
    HDU 多校联合第五场
    HDU 多校联合第六场
    POJ 2057 The Lost House (经典树形dp)
    Lucas定理
    HDU 4385 Moving Bricks (状态dp+贪心)
    HDU 多校联合第三场
    当最短路变成二维 _!
    POJ 1848 (一道不错的树形dp)
  • 原文地址:https://www.cnblogs.com/twodog/p/12139946.html
Copyright © 2011-2022 走看看