|
@@ -35,20 +35,31 @@ public class FacePlusApiHelper {
|
|
|
FacePlusResponse response = callApi(Constants.FACEPP_FACE_DETECT_URL, request);
|
|
|
|
|
|
FaceResult result = new FaceResult();
|
|
|
- result.setApiSuccess(true);
|
|
|
- result.setPass(false);
|
|
|
- result.setScore(0d);
|
|
|
+ result.setFacePass(false);
|
|
|
+ result.setFaceScore(0d);
|
|
|
result.setFaceNum(0);
|
|
|
result.setJsonResult(new JsonHelper().style(Include.NON_NULL).toJson(response));
|
|
|
|
|
|
- if (StringUtils.isNotEmpty(response.getError_message())) {
|
|
|
- result.setApiSuccess(false);
|
|
|
- result.setError(response.getError_message());
|
|
|
+ String errorMessage = response.getError_message();
|
|
|
+ if (StringUtils.isNotEmpty(errorMessage)) {
|
|
|
+ result.setApiRetry(true);
|
|
|
+ result.setError(errorMessage);
|
|
|
|
|
|
-
|
|
|
- if ("CONCURRENCY_LIMIT_EXCEEDED".equals(response.getError_message())) {
|
|
|
-
|
|
|
+ if (errorMessage.startsWith("INVALID_IMAGE_SIZE")
|
|
|
+ || errorMessage.startsWith("INVALID_IMAGE_URL")
|
|
|
+ || errorMessage.startsWith("IMAGE_FILE_TOO_LARGE")) {
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ result.setApiRetry(false);
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ log.warn("facepp_api_limit...");
|
|
|
+ }*/
|
|
|
+
|
|
|
return result;
|
|
|
}
|
|
|
|
|
@@ -57,7 +68,7 @@ public class FacePlusApiHelper {
|
|
|
|
|
|
if (faceNum == 1) {
|
|
|
|
|
|
- result.setPass(true);
|
|
|
+ result.setFacePass(true);
|
|
|
} else {
|
|
|
result.setError("faceNum=" + faceNum + " but notEq 1");
|
|
|
}
|
|
@@ -78,31 +89,42 @@ public class FacePlusApiHelper {
|
|
|
FacePlusResponse response = callApi(Constants.FACEPP_FACE_COMPARE_URL, request);
|
|
|
|
|
|
FaceResult result = new FaceResult();
|
|
|
- result.setApiSuccess(true);
|
|
|
- result.setPass(false);
|
|
|
- result.setScore(0d);
|
|
|
+ result.setFacePass(false);
|
|
|
+ result.setFaceScore(0d);
|
|
|
result.setFaceNum(0);
|
|
|
result.setJsonResult(new JsonHelper().style(Include.NON_NULL).toJson(response));
|
|
|
|
|
|
- if (StringUtils.isNotEmpty(response.getError_message())) {
|
|
|
- result.setApiSuccess(false);
|
|
|
- result.setError(response.getError_message());
|
|
|
+ String errorMessage = response.getError_message();
|
|
|
+ if (StringUtils.isNotEmpty(errorMessage)) {
|
|
|
+ result.setApiRetry(true);
|
|
|
+ result.setError(errorMessage);
|
|
|
|
|
|
-
|
|
|
- if ("CONCURRENCY_LIMIT_EXCEEDED".equals(response.getError_message())) {
|
|
|
-
|
|
|
+ if (errorMessage.startsWith("INVALID_IMAGE_SIZE")
|
|
|
+ || errorMessage.startsWith("INVALID_IMAGE_URL")
|
|
|
+ || errorMessage.startsWith("IMAGE_FILE_TOO_LARGE")) {
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ result.setApiRetry(false);
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ log.warn("facepp_api_limit...");
|
|
|
+ }*/
|
|
|
+
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
FacePlusThresholds thresholds = response.getThresholds();
|
|
|
if (thresholds != null) {
|
|
|
float confidence = response.getConfidence() != null ? response.getConfidence() : 0f;
|
|
|
- result.setScore(confidence);
|
|
|
+ result.setFaceScore(confidence);
|
|
|
|
|
|
|
|
|
if (confidence >= thresholds.getLe_4()) {
|
|
|
- result.setPass(true);
|
|
|
+ result.setFacePass(true);
|
|
|
} else {
|
|
|
result.setError("faceConfidence=" + confidence + " but less than " + thresholds.getLe_4());
|
|
|
}
|
|
@@ -126,13 +148,20 @@ public class FacePlusApiHelper {
|
|
|
long cost = System.currentTimeMillis() - start;
|
|
|
|
|
|
|
|
|
- if (response.isSuccessful() || code == 400 || code == 401 || code == 403) {
|
|
|
+ if (response.isSuccessful() || code == 400 || code == 401 || code == 403 || code == 412) {
|
|
|
FacePlusResponse result = new JsonHelper().parseJson(bodyStr, FacePlusResponse.class);
|
|
|
if (result != null) {
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ if (code == 413) {
|
|
|
+
|
|
|
+ FacePlusResponse result = new FacePlusResponse();
|
|
|
+ result.setError_message("IMAGE_FILE_TOO_LARGE");
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
log.warn("[FACE++] url:{} response:{} cost:{}ms body:{}", requestUrl, code, cost, bodyStr);
|
|
|
} catch (IOException e) {
|
|
|
log.error(e.getMessage(), e);
|