在java上使用人脸对比api出错
磨磨唧唧7895 发布于2018-11 浏览:1508 回复:2
0
收藏

这个是在java上调用api接口老是出现权限问题,但是已经自己申请过了,第一次使用不知道怎么修改了,知道的大佬麻烦帮看下,谢谢

// 百度API管理的应用
private static final String App_ID = "14635879";
private static final String API_Key = "scoi5dk8gW1oZLP9B2xmw1Vm";
private static final String Secret_Key = "UgI6dMLBtj7a09DYBP96zwfOI0xNhpEN";

@Autowired
private DoctorService doctorService;

/**
* 用于登录时根据用户名查询出相应照片路径,进行登录比较
* @throws IOException
*/
@RequestMapping("/doctorlogin.do")
//存在返回值添加此注解
@ResponseBody
public String login(HttpServletRequest req, HttpServletResponse resp) throws IOException {
// 获取网页前端发送过来的请求中的数值
//req.setCharacterEncoding("utf-8");
// 获取前端(网页)中拍摄的照片
String faceWeb = req.getParameter("face");
String name=req.getParameter("userName");

System.out.println(name);
System.out.print(faceWeb);
System.out.println();
//调用DoctorService类中的登录方法,查询到相应的用户
Doctor doctor = doctorService.DoctorLogin(name);

System.out.println(doctor);
//faceDB主要用于存放数据库中取出的用户照片信息
String faceDB = "";

// map1用于存放结果和用户信息,result用于存放map转化后的json字符串
HashMap map1 = new HashMap();
String result = null;

if(doctor!=null){
// 将用户名、密码存入session中
HttpSession session = req.getSession();
session.setAttribute("doctorlogin", true);
// 将用户信息存入session
session.setAttribute("Doctor", doctor);
// 获取到面部信息
faceDB = doctor.getD_doctorPicture();

System.out.println(faceDB);
// 调用(百度大脑)百度AI人脸识别接口
AipFace aipFace = new AipFace(App_ID, API_Key, Secret_Key);
// 创建装换对象(把图片转为二进制数组)
BASE64Decoder decoder = new BASE64Decoder();
byte[] Web = decoder.decodeBuffer(faceWeb);
byte[] Db = decoder.decodeBuffer(faceDB);
byte[][] bytes = { Web, Db };
System.out.println(Web);
System.out.println(Db);
// 调用方法进行对比
JSONObject Contrastresult = aipFace.match(bytes, new HashMap());
System.out.println(Contrastresult.toString());
// 获取评分结果result中的score的值
JSONArray jsonArray = Contrastresult.getJSONArray("result");
double score = jsonArray.getJSONObject(0).getDouble("score");

收藏
点赞
0
个赞
共2条回复 最后由磨磨唧唧7895回复于2018-11
#3磨磨唧唧7895回复于2018-11

十一月 06, 2018 5:12:50 下午 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet [springMVC] in context with path [/MyPlatform] threw exception [Request processing failed; nested exception is org.json.JSONException: JSONObject["result"] not found.] with root cause
org.json.JSONException: JSONObject["result"] not found.
at org.json.JSONObject.get(JSONObject.java:471)
at org.json.JSONObject.getJSONArray(JSONObject.java:618)
at main.controller.DoctorCtrl.login(DoctorCtrl.java:91)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:777)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:706)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:943)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:868)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.logging.log4j.core.web.Log4jServletFilter.doFilter(Log4jServletFilter.java:66)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:94)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:502)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1152)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1539)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1495)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)

 

0
#2用户已被禁言回复于2018-11

错误信息在哪亲?接口成功失败都会返回JSON格式的字符串内容。你发你的代码没用

2
TOP
切换版块