• guzzlehttp5.3 and guzzlehttp6.7 , 同时共存。同时安装2个版本guzzlehttp


    应用场景 php的组件有些时候 需要同时支持 guzzlehttp5.3 and guzzlehttp6.7 

    you call install guzzlehttp5.3 and guzzlehttp6.7 ,

    like this 
    vendor/guzzlehttp53
    vendor/guzzlehttp

    第二步 2.
    fillup/walmart-partner-api-sdk-php

    replace 

    use GuzzleHttp\   - > use GuzzleHttp53\

    GuzzleHttp\\ -> GuzzleHttp53\\


    第三部 2.

    composer\autoload_psr4

    add  GuzzleHttp53

    autoload_psr4

        'GuzzleHttp53\\Subscriber\\Retry\\' => array($vendorDir . '/guzzlehttp53/retry-subscriber/src'),
        'GuzzleHttp53\\Stream\\' => array($vendorDir . '/guzzlehttp53/streams/src'),
        'GuzzleHttp53\\Ring\\' => array($vendorDir . '/guzzlehttp53/ringphp/src'),
        'GuzzleHttp53\\Command\\Guzzle\\' => array($vendorDir . '/fillup/guzzle-services/src'),
        'GuzzleHttp53\\Command\\' => array($vendorDir . '/guzzlehttp53/command/src'),
        'GuzzleHttp53\\' => array($vendorDir . '/guzzlehttp53/guzzle/src'),
     
    autoload_static

    .......................

    guzzle 增加header

    1. $client = new Client([
    2. //域名或者访问的api接口地址
    3. 'base_uri' => 'http://localhost/test',
    4. // 超时,可设置可不设置
    5. 'timeout' => 2.0,
    6. ]);
    7. // $api可以为空,一般为api接口后缀,也可以直接写到上面的base_uri里面,
    8. $response = $client->request('POST/GET', '$api', [
    9. 'headers' => [
    10. 'name' => 'info'
    11. ],
    12. 'query' => [
    13. 'username' => 'webben',
    14. 'password' => '123456',
    15. ]
    16. ]);
    17. $postData = [
    18. 'platform_no'=> $rms_platform_no,
    19. 'uuid' => $uuid,
    20. "data_info" => $param
    21. ];
    22. //方法1
    23. $rs = $this->http($url , 'POST' , ['headers'=>$headers,'body'=>json_encode($postData)]);
    24. //方法2
    25. $rs = $this->http($url , 'POST' , ['headers'=>$headers,'json'=>$postData]);

    也可以用

    oauth-subscriber:使用OAuth 1.0(Guzzle 6+)签署Guzzle请求

    guzzle-oauth2-subscriber:适用于Guzzle 4、5和6的OAuth 2.0客户端-不再需要依赖了! ( 没有验证过)

    Guzzle OAuth 2.0订阅者 使用Guzzle 4、5、6、7和PHP 5.4、5.5、5.6、7.0、7.1、7.2、7.3和7.4进行了测试。 这是Guzzle的OAuth 2.0客户端,旨在与Guzzle 4、5、6、7和单个软件包中的所有将来版本100%兼容。 尽管我喜欢Guzzle,但它的接口不断变化,每12个月左右会引起重大的更改,因此,我创建了此程序包来帮助减少大多数第三方Guzzle依赖项带来的依赖地狱。 我写了官方的Guzzle OAuth 2.0插件,该插件仍在oauth2分支上,,但是我看到他们已经放弃了对master上的Guzzle

    ========================

    getEmitter方法添加头信息

    1. $client = new Client();
    2. $client->getEmitter()->attach(new Mock([new Response(200), new Response(201), new Response(202)]));
    3. $history = new History();
    4. $client->getEmitter()->attach($history);

    中间件

    1. function oauth_1_stack($token = NULL, $token_secret = NULL)
    2. {
    3. $stack = HandlerStack::create();
    4. $middleware = new Oauth1([
    5. 'consumer_key' => 'consumer_key',
    6. 'consumer_secret' => 'consumer_secret',
    7. 'token' => $token,
    8. 'token_secret' => $token_secret,
    9. ]);
    10. $stack->push($middleware);
    11. $options = [
    12. 'handler' => $stack,
    13. 'auth' => 'oauth'
    14. ];
    15. unset($stack, $middleware);
    16. return $options;
    17. }
    18. echo memory_get_usage() . "
    19. "; // 4017480
    20. $options = oauth_1_stack();
    21. echo memory_get_usage() . "
    22. "; // 4509824
    23. unset($options);
    24. echo memory_get_usage() . "
    25. "; // 4480032

  • 相关阅读:
    C++&QT day11
    Ubuntu 安装 HDF5 C++库
    Github的一个奇技淫巧
    鹅厂提速智能车,定位Tier C,把游戏技术也给用上了
    【TypeScript】深入学习TypeScript装饰器
    【COS生态建设】开发者有奖调研,等你来参与!
    小程序设计基本微信小程序的旅游社系统
    springMvc的简介
    光环云出席Enjoy出海AIGC主题研讨会,助力企业迎接AI时代机遇与挑战
    JVM基础篇
  • 原文地址:https://blog.csdn.net/zhangfeng1133/article/details/127791733