216201 image format error

百度云api银行卡号识别文档(获取access_token文档):http://ai.baidu.com/docs#/Auth/top
百度云api银行卡号识别文档:https://ai.baidu.com/docs#/OCR-API/475c4c8c
百度云api银行卡号识别文档(错误码查看):https://ai.baidu.com/docs#/OCR-API/58fd45dd
百度云api银行卡号识别文档(调用次数及价格):http://ai.baidu.com/docs#/OCR-Pricing/4841e8a9

在调用百度云api的文字识别中的识别银行卡号码api时,遇到了这样的问题,

{"log_id": 8249672164825685737, "error_code": 216201, "error_msg": "image format error"}
curl -i -k 'https://aip.baidubce.com/rest/2.0/ocr/v1/bankcard?access_token=你的access_token' --data 'image=urlencode(base64(图片))' -H 'Content-Type:application/x-www-form-urlencoded'

这里写图片描述
首先获取的access_token是正确的,再者,图片base64过之后urlencode了,也是正确的。图片信息如下:(这里只是举例,并非一张银行卡图片)
这是base64图片:

data:image/jpeg;base64,/9j/4RqqRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAcAAAAcgEyAAIAAAAUAAAAjodpAAQAAAABAAAApAAAANAACvyAAAAnEAAK/IAAACcQQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzADIwMTU6MDQ6MTIgMDg6MzY6MDcAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAACMKADAAQAAAABAAABbAAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAA

这里进行urlencode

data%3aimage%2fjpeg%3bbase64%2c%2f9j%2f4RqqRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAcAAAAcgEyAAIAAAAUAAAAjodpAAQAAAABAAAApAAAANAACvyAAAAnEAAK%2fIAAACcQQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzADIwMTU6MDQ6MTIgMDg6MzY6MDcAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAACMKADAAQAAAABAAABbAAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAA

组curl语句

curl -i -k 'https://aip.baidubce.com/rest/2.0/ocr/v1/bankcard?access_token=你的access_token' --data 'image=data%3aimage%2fjpeg%3bbase64%2c%2f9j%2f4RqqRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAcAAAAcgEyAAIAAAAUAAAAjodpAAQAAAABAAAApAAAANAACvyAAAAnEAAK%2fIAAACcQQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzADIwMTU6MDQ6MTIgMDg6MzY6MDcAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAACMKADAAQAAAABAAABbAAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAA' -H 'Content-Type:application/x-www-form-urlencoded'

无论换多少张图片,都是返回图片格式错的响应信息,本文开始的错误,很是困惑!!!图片是银行卡图片,格式是jpg,大小:40k
经过各种尝试解决,还是找出了问题的所在,base64后,出了问题!!!
base64后,正确的格式应该是去掉图片的头信息

/9j/4RqqRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAcAAAAcgEyAAIAAAAUAAAAjodpAAQAAAABAAAApAAAANAACvyAAAAnEAAK/IAAACcQQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzADIwMTU6MDQ6MTIgMDg6MzY6MDcAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAACMKADAAQAAAABAAABbAAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAA

改了格式以后,再进行urlencode,组curl语句,没问题了,可以正常返回正确结果了。

猜你喜欢

转载自blog.csdn.net/xiejunna/article/details/80196218
今日推荐