简要:
本文简要介绍使用 Apache HttpClient 工具调用旷世科技的 Face API
前期准备:
依赖包 maven 地址:
- <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
- <dependency>
- <groupId>org.apache.httpcomponents</groupId>
- <artifactId>httpclient</artifactId>
- <version>4.5.4</version>
- </dependency>
api_keyapi_secret 的获取, 可以登录旷世科技官网注册获取免费的 key 和 secret
Detect API 说明文档
java 测试代码:
- package buct.edu.cn;
- import java.net.URI;
- import org.apache.http.HttpEntity;
- import org.apache.http.HttpResponse;
- import org.apache.http.client.HttpClient;
- import org.apache.http.client.methods.HttpPost;
- import org.apache.http.client.utils.URIBuilder;
- import org.apache.http.entity.StringEntity;
- import org.apache.http.impl.client.HttpClients;
- import org.apache.http.util.EntityUtils;
- public class HttpClientDemo {
- public static void main(String[] args) {
- HttpClient httpclient = HttpClients.createDefault();
- // 设置请求参数
- String api_key = "<api_key>";
- String api_secret = "<api_secret>";
- String image_url = "http://gb.cri.cn/mmsource/images/2013/02/19/27/12679377093283173211.jpg";
- String return_attributes = "gender,age";
- try
- {
- URIBuilder builder = new URIBuilder("https://api-cn.faceplusplus.com/facepp/v3/detect");
- URI uri = builder.build();
- HttpPost request = new HttpPost(uri);
- StringEntity reqEntity = new StringEntity("api_key="+api_key+"&api_secret="+api_secret+"&image_url="+image_url+"&return_attributes="+return_attributes+"");
- reqEntity.setContentType("application/x-www-form-urlencoded");
- request.setEntity(reqEntity);
- HttpResponse response = httpclient.execute(request);
- HttpEntity entity = response.getEntity();
- if (entity != null)
- {
- System.out.println(EntityUtils.toString(entity));
- }
- }
- catch (Exception e)
- {
- System.out.println(e.getMessage());
- }
- }
- }
测试结果:
{"image_id": "qVohAsm0QmanSo9LBNtUcQ==", "request_id": "1514360502,7fc98900-59ca-4ac1-bbf0-95d5ada7588f", "time_used": 308, "faces": [{"attributes": {"gender": {"value": "Female"}, "age": {"value": 25}}, "face_rectangle": {"width": 173, "top": 160, "left": 215, "height": 173}, "face_token": "949f896eca7e645f27afc080971479f5"}]}
注意:
免费版 key 的 QPS(每秒钟支持的调用次数):10, 但是这个在后台是与其他用户共享的, 所以经常会出现:
{"error_message":"CONCURRENCY_LIMIT_EXCEEDED"}
这个是操过了 QPS 限制所致, 也可以理解, 毕竟是免费的产品
来源: https://www.cnblogs.com/taro/p/8427004.html