微信小程序OCR识别 "errcode":101000,"errmsg":"invalid image url && "errcode":41005,"errmsg":"media data missing
这是腾讯的文档(https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/img-ocr/ocr/idCardOCR.html) 按照文档里实现你永远整不出来 腾讯文档垃圾名不虚传 现在想想还是生气
前端代码
uploadIdcard: function (){
wx.chooseMedia({
count:1,
mediaType:['image'],
sourceType:['camera'],
sizeType: ['original', 'compressed'],
camera:'back',
success:(res) => {
if(res.tempFiles[0].size > 2048000 ){
wx.showToast({
title: '图片大小超过2M',
icon:'error'
})
}else{
wx.uploadFile({
filePath: res.tempFiles[0].tempFilePath,
name: 'OCRCard',
url: app.globalData.baseURL+'/admin/wxuser/OCRIdCard',
success:(res1) => {
//获取的返回值
},
fail:(err) => {
console.log(err,"err");
}
})
}
}
})
},
后端代码,坑的地方来了,
img_url 也! 不! 是! body参数 也就说这玩意不能放在map里 人话就是你只能使用&img_url 拼接才行 就不能和access_token似的标注一下 非Body参数
你翻翻他们那个文档 OCR里哪有41005的错误码!!!
这里报41005(img参数我没试)
url我最开始的端口是9001但是一直报错 但80端口就不报错了其他的端口可以试试 我只试了80,改成80端口就不会再报101000错误了
public synchronized String OCRIdCard(@RequestParam("OCRCard") MultipartFile OCRCard,HttpServletRequest request) throws IOException {
System.out.println("-----------------------");
//上传图片并返回图片地址
String data = icommissionService.upPicture(OCRCard).getData();
System.out.println(data+"图片上传的返回值");
//端口我试了80是成功的
String url = "https://api.weixin.qq.com/cv/ocr/idcard?access_token="+getToken(request)+"&img_url="+"http://xxxx:80/xxxx.jpg";
String post = sendGetOrPost.doGetPost(url, "POST",null);
System.out.println("请求结果");
System.out.println(post+"0000000000000000000000000");
JSONObject jsonObject = JSONObject.parseObject(post);
Integer errcode = Integer.valueOf(jsonObject.getString("errcode"));
if (errcode == 0){
System.out.println("识别成功");
System.out.println(jsonObject.toJSONString()+"9999999999999999999999");
}
System.out.println("-----------------------");
return null;
}
请求成功