PSR 标准 · 第 9 题,共 12 题
某个服务用 TYPO3 的 RequestFactory 调用外部 API:$this->requestFactory->request($url, 'GET', ['timeout' => 5])。哪些说法是正确的?
有 2 个正确答案。 中等
显示答案
答案
- B 如果 API 返回 404 或 500,Guzzle 默认会抛出一个必须捕获的异常
- D 结果是一个 PSR-7 响应,内容可以例如用 (string)$response->getBody() 读取
解析
request() 把请求交给一个 Guzzle 客户端,该客户端已用 $GLOBALS['TYPO3_CONF_VARS']['HTTP'] 中的设置(例如代理和请求头)预先配置好。第三个参数中的选项会针对本次调用补充或覆盖这些设置。全局的 timeout 为 0,即不限时,因此自定义一个上限是值得的。由于 http_errors 保持启用,400 及以上的状态码会导致 RequestException。