超时配置
更新时间:
合理的超时配置可以避免请求无限期等待,减少资源消耗,有利于提升程序的健壮性、可靠性。本文为您详细介绍超时配置方式。
超时配置方式
说明
超时配置优先级为:Request配置 -> Client配置 -> 默认,优先级依次降低。
使用默认值。默认连接超时为5秒,读超时为10秒。
通过Request配置。
<?php require_once 'vendor/autoload.php'; use AlibabaCloud\Client\AlibabaCloud; use AlibabaCloud\Client\Exception\ClientException; use AlibabaCloud\Client\Exception\ServerException; use AlibabaCloud\Ecs\Ecs; try { // 请确保已设置环境变量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。 AlibabaCloud::accessKeyClient(getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'), getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET')) ->asDefaultClient(); $request = Ecs::v20140526()->describeRegions(); $result = $request ->scheme('https') ->version('2014-05-26') ->product('Ecs') ->action('DescribeRegions') ->regionId('cn-hangzhou') ->host("ecs.cn-hangzhou.aliyuncs.com") ->connectTimeout(5) // 设置连接超时为5秒。 ->timeout(10) // 设置读超时为10秒。 ->request(); print_r($result->toArray()); } catch (ClientException $exception) { // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 echo $exception->getMessage() . PHP_EOL; } catch (ServerException $exception) { // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 echo $exception->getMessage() . PHP_EOL; echo $exception->getErrorCode() . PHP_EOL; echo $exception->getRequestId() . PHP_EOL; echo $exception->getErrorMessage() . PHP_EOL; }
通过Client配置。
<?php require_once 'vendor/autoload.php'; use AlibabaCloud\Client\AlibabaCloud; use AlibabaCloud\Client\Exception\ClientException; use AlibabaCloud\Client\Exception\ServerException; use AlibabaCloud\Ecs\Ecs; try { // 请确保已设置环境变量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。 AlibabaCloud::accessKeyClient(getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'), getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET')) ->asDefaultClient() ->connectTimeout(5) // 设置连接超时为5秒。 ->timeout(10); // 设置读超时为10秒。 $request = Ecs::v20140526()->describeRegions(); $result = $request ->scheme('https') ->version('2014-05-26') ->product('Ecs') ->action('DescribeRegions') ->regionId('cn-hangzhou') ->host("ecs.cn-hangzhou.aliyuncs.com") ->request(); print_r($result->toArray()); } catch (ClientException $exception) { // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 echo $exception->getMessage() . PHP_EOL; } catch (ServerException $exception) { // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 echo $exception->getMessage() . PHP_EOL; echo $exception->getErrorCode() . PHP_EOL; echo $exception->getRequestId() . PHP_EOL; echo $exception->getErrorMessage() . PHP_EOL; }
文档内容是否对您有帮助?