【问题标题】:GuzzleHttp\Client change base url dynamicallyGuzzleHttp\Client 动态更改基本 url
【发布时间】:2019-03-15 17:02:04
【问题描述】:

我正在开发一个带有 RESTful API 的项目。我使用 GuzzleHttp 库在 API 中获取/放入等数据。

有什么方法可以在运行时更改 GuzzleHttp\Client 的基本 url。我的想法是因为我有一个 api 的多个端点,但基本 url 不一样,所以我想创建一个带有一些选项的客户端,但是当我想执行一些请求时更改基本 url。

【问题讨论】:

    标签: php rest http guzzle


    【解决方案1】:

    正如 GuzzleHttp 的文档中所写,如果您将绝对路径传递给 post/get/put 等,它将覆盖当前的基本 url。因此,如果您预先添加绝对路径,它将完成工作。 Check here, GuzzleHttp documentation

    【讨论】:

    • 这行得通,但我希望Client 上有一个setConfig 或者甚至是setBaseUri 方法。完整的 URI 方法似乎不是一个干净的方法。
    • 正如an issue 中提到的,从 Guzzle 6 开始,客户端是不可变的,因此改变它们的状态是没有意义的。您仍然可以使用自定义工厂来创建具有适当基本 url 的客户端。
    【解决方案2】:

    Guzzle 5 之前,可以使用setDefaultOption 方法:

    $client->setDefaultOption('base_uri', 'https://example.url');
    

    【讨论】:

    • 没有这种方法。请详细说明。
    • 我相信通过说up to version 5,OP 意味着在版本 5 之后,这种方法已被弃用(消失)
    猜你喜欢
    • 2014-10-05
    • 2021-12-02
    • 1970-01-01
    • 2017-05-28
    • 1970-01-01
    • 2015-12-07
    • 2016-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多