下载就是简单的图片下载, 返回给设备的json如下:
{ "data": { "users": [ { "creation_time": 1623225536000, "last_modified_time": 1623225536000, "is_deleted": false, "person_ext_info": {}, "person_name": "xxx", "faces": [ { "face_id": 67, "face_img_url": "http://192.168.2.10:8082/device/face_image?userkey=67" } ], "person_id": 67 }, { "creation_time": 1623225536000, "last_modified_time": 1623225536000, "is_deleted": false, "person_ext_info": {}, "person_name": "xxxx", "faces": [ { "face_id": 60, "face_img_url": "http://192.168.2.10:8082/device/face_image?userkey=60" } ], "person_id": 60 } ] }, "success": true, "message": "操作成功" }
这是本地的返回, 上周就正常, 但云服务器失败了一周.
第一个原因: GSON默认开启html字符转换, =60 变成了 \U021s之类的. 坑爹啊, 关键本地也没关html字符转换, 但它是正常的! 这可能就是操作系统不一样导致的.
第二个原因: 服务器用了nginx代理, https在nginx上, 到tomcat里获取的request.getScheme()是http, 导致拼出的网址设备拿来请求无法下载图片, 犀利的是浏览器自动识别, 一直都能下载图片[捂脸哭]