在线测评地址:http://kan.msxiaobing.com/ImageGame/Portal?task=howold
1.将照片base64编码
/**
* 用于将图片文件base64编码返回串
* @param imgFile 图片文件路径
* @return base64编码之后的串
*/
public static String getBase64Str(String imgFile){
//将图片文件转化为字节数组字符串,并对其进行Base64编码处理
InputStream in = null;
byte[] data = null;
//读取图片字节数组
try
{
in = new FileInputStream(imgFile);
data = new byte[in.available()];
in.read(data);
in.close();
}
catch (IOException e)
{
e.printStackTrace();
}
return new String(Base64.encodeBase64(data));
}
2.将编码信息上传到微软服务器,并接收返回结果
请求地址:http://kan.msxiaobing.com/Api/Image/UploadBase64
/**
* 上传图片数据到微软服务器
* @param imgPath 要测评的图片路径
* @return 上传服务器成功后返回的Host,url的json数据
*/
public static JSONObject Upload(String imgPath){
String base64Str = getBase64Str(imgPath);
//打印照片信息
System.out.print(imgPath.substring(imgPath.lastIndexOf("\\")+1).replaceAll(".jpg",""));
//System.out.println("base64Str:"+base64Str);
String result= ColorValueTestUtils.sendPost("http://kan.msxiaobing.com/Api/Image/UploadBase64",base64Str);
//System.out.println("上传结果:"+result);
JSONObject jsonObject= JsonOperatorUtil.toJSONObject(result);
return jsonObject;
}
3.对json结果解析,获取图片地址信息
JSONObject jsonObject = Upload(filePath);
String Host = jsonObject.get("Host").toString();
String Url = jsonObject.get("Url").toString();
4.再发起颜值测试请求
public static Map<String,String> getScore(String Host,String Url){
Map<String,String> resultMap = new HashMap<String,String>();
String map = "Content%5BimageUrl%5D="+Host+Url;
String result= ColorValueTestUtils.sendPost("http://kan.msxiaobing.com/Api/ImageAnalyze/Process?service=yanzhi",map);
//System.out.println(result);
JSONObject jsonObject= JsonOperatorUtil.toJSONObject(result);
if(jsonObject!=null){
JSONObject content = (JSONObject) jsonObject.get("content");
String comments = content.get("text").toString();
System.out.println("评分结果结果:\n\t"+comments);
Pattern p = Pattern.compile("(\\d.\\d分)|(\\d.\\d)");
Matcher m = p.matcher(comments);
String value_score = "";
if(m.find()) {
value_score = m.group(0);
}
resultMap.put("value_score", value_score);
resultMap.put("comments", comments);
}else{
System.out.println("评分异常! \n\t ~你上传的可能不是人像吧");
}
return resultMap;
}
效果:
PC端午网页测试