[409] ClientException in RequestException.php line 113 Client error: `GET http://b.k2.fwycg.com:8170/wgs/v1/openapi/products?productName=&upcBarcode=&barcoder=&fnsku=&businessCode=&warehouseCode=US-HSAJ` resulted in a `409 Conflict` response
搜索了很多资料,
new Client([
'header' => [
'Accept' => 'application/json',
'Content-Type' => 'application/x-www-form-urlencoded'
],
'verify' => false
]);
默认配置
$defaults = [
'allow_redirects' => RedirectMiddleware::$defaultSettings,
'http_errors' => true,
'decode_content' => true,
'verify' => true,
'cookies' => false
];
$defaults['proxy']['http']
$defaults['proxy']['https']
$defaults['proxy']['no']
$defaults['cookies']
配置有这么多选项,
'verify' => false 没有起效
但是 用
解决办法
$client = new \GuzzleHttp\Client(['http_errors' => false]);
就不用返回错误了
/**
* Middleware that throws exceptions for 4xx or 5xx responses when the
* "http_error" request option is set to true.
*
* @return callable Returns a function that accepts the next handler.
*/
public static function httpErrors()
{
return function (callable $handler) {
return function ($request, array $options) use ($handler) {
if (empty($options['http_errors'])) {
return $handler($request, $options);
}
return $handler($request, $options)->then(
function (ResponseInterface $response) use ($request, $handler) {
$code = $response->getStatusCode();
if ($code < 400) {
return $response;
}
throw RequestException::create($request, $response);
}
);
};
};
}
我们来看下源码
这篇博客主要讨论了在使用 Guzzle HTTP 客户端时遇到409 Conflict响应的问题。作者指出,常规配置如设置'verify'为false并未解决问题,但通过将'http_errors'设置为false可以避免返回错误。文中还引用了源码片段来解释这一行为。文章适合对 PHP 和 Guzzle 有经验的开发者,特别是那些在API调用中遇到冲突错误的读者。
585

被折叠的 条评论
为什么被折叠?



