GuzzleHttp\Client动态更改基本URL

Sim*_*lev 10 php rest http guzzle

我正在开发一个带有restful API的项目.我使用GuzzleHttp库来获取/放置API中的数据等.

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

小智 9

由于它是在GuzzleHttp的文档中编写的,如果您将绝对路径传递给post/get/put等,它将覆盖当前的基本URL.因此,如果您预先设置绝对路径,它将完成工作.点击这里,GuzzleHttp文档

  • 这是有效的,但我希望在`Client`上有一个`setConfig`或者甚至是`setBaseUri`方法.完整的URI方法似乎不是一个干净的方法. (7认同)
  • 正如[一个问题](https://github.com/guzzle/guzzle/issues/1419)中提到的,从 Guzzle 6 开始,客户端是不可变的,因此改变它们的状态是没有意义的。您仍然可以使用自定义工厂来创建具有适当基本 url 的客户端。 (2认同)

ali*_*gur 5

到 Guzzle 5 版本,您可以使用setDefaultOption方法:

$client->setDefaultOption('base_uri', 'https://example.url');
Run Code Online (Sandbox Code Playgroud)

  • 没有这样的方法。请详细说明。 (2认同)