人臉識別API-人臉屬性(java例子)
阿新 • • 發佈:2018-12-12
人臉屬性
HTTP傳送類
package engine.demo; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; import com.alibaba.fastjson.JSONObject; public class HttpClientUtil { public static String sendPostRequestByJava(String reqURL, String sendData, int connectTimeout, int readTimeout) { HttpURLConnection httpURLConnection = null; OutputStream out = null; InputStream in = null; int httpStatusCode = 0; try { URL sendUrl = new URL(reqURL); httpURLConnection = (HttpURLConnection) sendUrl.openConnection(); httpURLConnection.setRequestMethod("POST"); httpURLConnection.setDoOutput(true); httpURLConnection.setUseCaches(false); httpURLConnection.setConnectTimeout(connectTimeout); httpURLConnection.setReadTimeout(readTimeout); httpURLConnection.setRequestProperty("Content-Type", "application/json"); out = httpURLConnection.getOutputStream(); out.write(sendData.getBytes()); out.flush(); httpStatusCode = httpURLConnection.getResponseCode(); in = httpURLConnection.getInputStream(); byte[] by = new byte[1024]; ByteArrayOutputStream bos = new ByteArrayOutputStream(); int len = -1; while ((len = in.read(by)) != -1) { bos.write(by, 0, len); } return bos.toString("utf-8"); } catch (Exception e) { JSONObject json = new JSONObject(); json.put("result", -10000); json.put("info", "http error"); json.put("httpStatusCode", httpStatusCode); return json.toString(); } finally { if (out != null) { try { out.close(); } catch (Exception e) { } } if (in != null) { try { in.close(); } catch (Exception e) { } } if (httpURLConnection != null) { httpURLConnection.disconnect(); httpURLConnection = null; } } } public static String sendPostRequestByJava(String reqURL, String sendData) { return sendPostRequestByJava(reqURL, sendData, 30000, 30000); } }
人臉屬性API封裝類
package engine.demo; import com.alibaba.fastjson.JSONObject; public class FaceAttribute { public static int Process(String url,byte[] image) { JSONObject json = new JSONObject(); json.put("app_id", "system"); json.put("app_secret", "12345"); json.put("img", image); String response=HttpClientUtil.sendPostRequestByJava(url, json.toString()); System.out.println(response);; return 0; } }
傳送請求給伺服器
package engine.demo; import java.io.File; import java.io.FileInputStream; import java.io.IOException; public class App { public static void main( String[] args ) { //讀取一個本地jpg檔案 byte[] imageA=readFile("g:/1.jpg"); //向伺服器傳送請求 FaceAttribute.Process("http://192.168.10.25:7100/face/tool/attribute", imageA); } public static byte[] readFile(String path){ File filePic = new File(path); if(filePic.exists()){ FileInputStream is=null; try { is = new FileInputStream(filePic); int i = is.available(); byte data[] = new byte[i]; is.read(data); is.close(); return data; } catch (Exception e) { if (is!=null){ try { is.close(); } catch (IOException e1) { } } return null; } }else{ return null; } } }
返回結果
{
"debugInfo": {
"elapse": 189,
"path": "/face/tool/attribute"
},
"faces": [{
"age": 45,
"gender": -1,
"height": 104,
"width": 104,
"x": 282,
"y": 59
}, {
"age": 28,
"gender": -1,
"height": 104,
"width": 104,
"x": 54,
"y": 94
}],
"info": "success",
"result": 0,
"seq": "c14e20244bd44711bf45fe3241490d51"
}