我正在使用Google的php client library来构建一个应用程序。有时,Google需要长达100秒的时间来响应API请求。我想将套接字超时限制为30秒。
有人知道这是怎么可能的吗?在文档中没有看到任何明确的例子,我也没有看到任何与超时相关的东西跳出来。
我确实在Java客户端的文档中找到了this example,但似乎找不到与之等效的PHP。
谢谢你的帮助
我正在使用Google的php client library来构建一个应用程序。有时,Google需要长达100秒的时间来响应API请求。我想将套接字超时限制为30秒。
有人知道这是怎么可能的吗?在文档中没有看到任何明确的例子,我也没有看到任何与超时相关的东西跳出来。
我确实在Java客户端的文档中找到了this example,但似乎找不到与之等效的PHP。
谢谢你的帮助
4条答案
按热度按时间byqmnocz1#
在Google API v2中,这可以通过Guzzle客户端完成
vxbzzdmp2#
根据this issue,你可以直接将参数传递给curl。
xzabzqsa3#
我在v2.2.2上使用了这个:
yhived7q4#
对于
2.12.1
版本,查看Google客户端类,这不会起作用。不确定其他版本。$client->setConfig()
-只是将配置添加到$config属性中,如果您在构造函数-new \Google\Client(['CURLOPT_TIMEOUT' => 100]);
中传入配置,则相同。$config属性将保存此值,但不会将其传递到httpClient。当包在
createDefaultHttpClient()
-〉www.example.com -〉中创建HttpClient时https://github.com/googleapis/google-api-php-client/blob/main/src/Client.php#L1182,它确实会传递base_url
,defaults
等,这取决于您拥有的Guzzle版本,但遗憾的是,与超时无关。因此,如果您将任何与超时相关的内容传递到配置中,则不会将其添加到HttpClient。解决方案:
自己创建一个HttpClient类,设置超时并传入:
希望这能帮上忙。