// This sample uses the Apache HTTP client from HTTP Components (http://hc.apache.org/httpcomponents-client-ga/)
include('HTTP/Request2.php');//add 2017-02-07 subscription key
$key1 = 'xxxxxxx'; //在微軟人臉識別處注冊的賬戶對應的face應用api key
//add 2017-02-07 personGroupId
$group_id = 'school_1';$request = new Http_Request2("https://westus.api.cognitive.microsoft.com/face/v1.0/persongroups/{$group_id}");
$url = $request->getUrl();########################################################################################
# 記得一定要關閉證書驗證,否則會出現如下證書驗證失敗的錯誤提示
/*
Fatal error: Uncaught
HTTP_Request2_ConnectionException: Unable to connect to tls://westus.api.cognitive.microsoft.com:443.
Error: stream_socket_client(): unable to connect to tls://westus.api.cognitive.microsoft.com:443 (Unknown error)
stream_socket_client(): Failed to enable crypto stream_socket_client(): SSL operation failed with code 1.
OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:
certificate verify failed in /usr/local/php/lib/php/HTTP/Request2/Adapter/Socket.php on line 332
*/
########################################################################################
$request->setConfig(['ssl_verify_peer'=>FALSE,'ssl_verify_host'=>FALSE]);
########################################################################################$headers = array(
// Request headers
'Content-Type' => 'application/json',
'Ocp-Apim-Subscription-Key' => $key1,
);$request->setHeader($headers);$parameters = array(
// Request parameters
'personGroupId'=>$group_id
);$url->setQueryVariables($parameters);$request->setMethod(HTTP_Request2::METHOD_PUT);// Request body
// add body
$body = '{"name":"group1", "userData":"group1 userData test"}';
$request->setBody("{$body}");try
{
$response = $request->send();
echo $response->getBody();
}
catch (HttpException $ex)
{
echo $ex;
}?>以下是通過HTTP_Request創建人臉識別群組操作成功與否返回的提示信息(出現如下狀態信息,就說明HTTP_Request成功請求了人臉識別接口,到此HTTP_REQUEST2的使用介紹完畢)Response 200 A successful call returns an empty response body.
Response 400 Error code and message returned in JSON:
Error Code
Error Message Description
BadArgument
'name' is too long.
BadArgument
'userData' is too long.
BadArgument
Bad and unrecognizable JSON body.
BadArgument
Person group ID is invalid. Valid format should be a string composed by numbers, English letters in lower case, '-', '_', and no longer than 64 characters.
application/json{ "error":{
"code":"BadArgument",
"message":"'name' is too long."}}
Response 401 Error code and message returned in JSON:
Error Code
Error Message Description
Unspecified
Invalid subscription Key or user/plan is blocked.
application/json{ "error":{ "code": "Unspecified", "message": "Access denied due to invalid subscription key. Make sure you are subscribed to an API you are trying to call and provide the right key."}}
Response 403 application/json{ "error":{ "statusCode": 403, "message": "Out of call volume quota. Quota will be replenished in 2.12 days."}}
Response 409 Error code and message returned in JSON:
Error Code
Error Message Description
PersonGroupExists
Person group already exists.
ConcurrentOperationConflict
Concurrent operation conflict on resource.
application/json{ "error":{ "code":"PersonGroupExists", "message":"Person group 'sample_group' already exists."}}
Response 415 Unsupported media type error. Only "application/json" is valid for this API.
application/json{ "error":{ "code":"BadArgument", "message":"Invalid Media Type"}}
Response 429 application/json{ "error":{ "statusCode": 429, "message": "Rate limit is exceeded. Try again in 26 seconds."}}