本文為您介紹V1.0 SDK如何進行HTTPS請求配置。
使用HTTPS協議
可以通過設定忽略認證驗證,支援guzzlehttp的其他配置guzzlephp request options
重要
使用HTTPS協議訪問OpenAPI時,SDK會預設開啟校正SSL/TLS認證有效性,若您代碼環境沒有認證,則會報錯認證校正失敗。
為保障環境通訊安全,建議您保持開啟,若在測試環境必須忽略認證校正,可以通過參數verify設定。
特化調用
通過Request配置HTTPS請求樣本
<?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'));
$request = Ecs::v20140526()->describeRegions();
$result = $request
->scheme('https') // 佈建要求協議。
->verify(false) // 設定是否進行認證校正,false忽略認證校正。為保障環境通訊安全,建議您保持開啟。
->version('2014-05-26')
->product('Ecs')
->action('DescribeRegions')
->regionId('cn-hangzhou')
->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;
}泛化調用
RPC請求配置HTTPS請求樣本
<?php
require_once 'vendor/autoload.php';
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
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'));
$result = AlibabaCloud::rpc()
->product('Ecs')
->version('2014-05-26')
->action('DescribeRegions')
->regionId('cn-hangzhou')
->scheme('https') // 佈建要求協議。
->verify(false) // 設定是否進行認證校正,false忽略認證校正。為保障環境通訊安全,建議您保持開啟。
->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;
}ROA請求配置HTTPS請求樣本
<?php
require_once 'vendor/autoload.php';
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
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'));
$result = AlibabaCloud::roa()
->product('CS')
->version('2015-12-15')
->action('DescribeClustersV1')
->pathPattern('/api/v1/clusters')
->regionId('cn-hangzhou')
->options([
'query' => [
],
])
->scheme('https') // 佈建要求協議。
->verify(false) // 設定是否進行認證校正,false忽略認證校正。為保障環境通訊安全,建議您保持開啟。
->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;
}傳入自訂認證
為保障環境通訊安全,建議您使用HTTPS請求協議,並開啟認證校正。PHP V1.0 SDK支援以下方式進行認證校正。
在request上設定:
<?php
use AlibabaCloud\Client\AlibabaCloud;
$request = AlibabaCloud::rpc()
->product('Sts')
->version('2015-04-01')
->action('GenerateSessionAccessKey')
->host('sts.ap-northeast-1.aliyuncs.com');
// 在作業系統中尋找
$request->verify(true);
// 使用指定的檔案
$request->verify(['verify' => '/path/to/cert.pem']);
// 使用指定的檔案和密碼
$request->verify(['verify' => ['/path/to/cert.pem','password']]);2. 在client上設定:
<?php
use AlibabaCloud\Client\AlibabaCloud;
// 在作業系統中尋找
AlibabaCloud::getDefaultClient()
->verify(true)
->asDefaultClient();
// 使用指定的檔案
AlibabaCloud::getDefaultClient()
->verify(['verify' => '/path/to/cert.pem'])
->asDefaultClient();
// 使用指定的檔案和密碼
AlibabaCloud::getDefaultClient()
->verify(['/path/to/cert.pem','password'])
->asDefaultClient();