活体检测error_code":222200"
李奎忠君 发布于2018-08 浏览:5685 回复:8
1
收藏
最后编辑于2019-11

返回错误:

{"error_code":222200,"error_msg":"request body should be json format","log_id":2555949445892,"timestamp":1533804250,"cached":0,"result":null}

代码如下:

	def faceverify(self,file_name):
		base64_data=self.base64_coding(file_name)
		url='https://aip.baidubce.com/rest/2.0/face/v3/faceverify'+ "?access_token=" + access_token
		http = urllib3.PoolManager()
		data={
		
		"image": base64_data,
		"image_type":"BASE64"
		# "face_field":"qualities,faceliveness"
		}
		headers={
		# "Content-Type":"application/x-www-form-urlencoded"
		"Content-Type":"application/json"
		}
		data = json.dumps(data)
		# data=urllib.urlencode(data)
		r = http.request('POST',url,body=data,headers=headers)
		# req = urllib2.Request(url)
		# req.add_header('Content-Type','application/json')
		# r = urllib2.urlopen(req,data)
		# print r.read()
		print r.data

我明明都有 data = json.dumps(data)

求助

收藏
点赞
1
个赞
共8条回复 最后由156******89回复于2019-11
#9156******89回复于2019-11

这个问题我也遇到了,后来解决了,前端代码:

当时我的错误代码是这样的

let data = {
image: tempImgData,
image_type: 'BASE64',
}


后来在外面加一个中括号变成数组就可以了:

let data = [{
image: tempImgData,
image_type: 'BASE64',
}]
具体原因没搞明白,在这个地方卡住了,和楼上的童鞋一样,设置了headers,也是不行,用了qs.stringify和JSON.stringify都不行,虽然好了但是不太明白,有明白的给指点一下吧

1
#8lxhaihmy回复于2019-07

同问222200的错误

 

0
#7丶蜡笔小哥哥回复于2019-07

js怎么实现

0
#6173******90回复于2019-03

我也遇到了,你们解决了嘛

0
#5173******90回复于2019-03

你们的解决了嘛

0
#4嗨喽ap回复于2019-02

我这样写有什么错误,返回的也是"error_code":222200

def faceverify(url, imgpath, token):
    with open(imgpath, 'rb') as im:
        encod_im = base64.b64encode(im.read())
        param = {"image":encod_im, "image_type":"BASE64", "face_fields":"faceliveness", "max_face_num":2}
        params = urllib.parse.urlencode(param).encode(encoding='UTF8')
        headers = {"Content-Type":"application/x-www-form-urlencoded"}
        # headers = urllib.parse.urlencode(headers).encode(encoding='UTF8')
        request_url = url + '?access_token=' + token
        # params = json.dumps(params)
        request = urllib.request.Request(request_url, data=params)
        request.add_header("Content-Type","application/x-www-form-urlencoded")
        response = urllib.request.urlopen(request)
        content = response.read()
        if (content):
            js = json.loads(content)
            print(js)
0
#3帅厮回复于2018-09

博主请问,上下两端代码有啥区别 没看出来

0
#2李奎忠君回复于2018-08

解决了 :

很奇怪的是,v3 版本的api 表单是个list,然后json.dumps(),如下:

	def faceverify(self,file_name):
		base64_data=self.base64_coding(file_name)
		url='https://aip.baidubce.com/rest/2.0/face/v3/faceverify'+ "?access_token=" + access_token
		http = urllib3.PoolManager()
		data=[{"image": base64_data,"image_type":"BASE64"}]
		headers={
		"Content-Type":"application/json"
		}
		data = json.dumps(data)
		r = http.request('POST',url,body=data,headers=headers)
		print r.data

 

2
TOP
切换版块