python2调用api一直出现282008错误
Maple枫77 发布于2019-04 浏览:3133 回复:4
0
收藏
# encoding:utf-8

import urllib, urllib2
import sys
import json
#print sys.getdefaultencoding()
reload(sys)
sys.setdefaultencoding('utf-8')
#print sys.getdefaultencoding()
# client_id 为从UNIT的【发布上线】模块进入百度云创建应用后获取的API Key
client_id='6IyrjGqXXXXXXXXRueG2pAiw'
#client_secret 为从UNIT的【发布上线】模块进入百度云创建应用后获取的Secret Key
client_secret='xKuYf5M38XXXXXXXXQj2UySaMultIMGB'
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id='+client_id+'&client_secret='+client_secret
#上面的XXXXXXX 要替换成自己的API Key,YYYYYY要换成自己的Secret Key
request = urllib2.Request(host)
request.add_header('Content-Type', 'application/json; charset=UTF-8')
response = urllib2.urlopen(request)
access_token = json.load(response)["access_token"]
#真实业务中要把access_token 存到redis里,不能频繁的创建access_token(频繁创建会影响性能,导致一些对话失败),access_token默认有效期为30天,要自己写定时任务在30天到期前自动更新
#print access_token

url = 'https://aip.baidubce.com/rpc/2.0/unit/bot/chat?access_token=' + access_token
query = "帮我定明天北京到深圳的高铁票"
#下面的log_id在真实应用中要自己生成,可是递增的数字
log_id ='7758521'
#下面的user_id在真实应用中要是自己业务中的真实用户id、设备号、ip地址等,方便在日志分析中分析定位问题
user_id='222333'
#下面要替换成自己的bot_id
bot_id='SXXXXXX'
post_data = '{\"bot_session\":\"\",\"log_id\":\"'+log_id+'\",\"request\":{\"bernard_level\":1,\"client_session\":\"{\\\"client_results\\\":\\\"\\\", \\\"candidate_options\\\":[]}\",\"query\":\"' + query + '\",\"query_info\":{\"asr_candidates\":[],\"source\":\"KEYBOARD\",\"type\":\"TEXT\"},\"updates\":\"\",\"user_id\":\"'+user_id+'\"},\"bot_id\":'+bot_id+',\"version\":\"2.0\"}'
request = urllib2.Request(url, post_data)

request.add_header('Content-Type', 'application/Json_test;charset=UTF-8')
response = urllib2.urlopen(request)
content = response.read()
#if content:
#    print content
data = json.loads(content)
print '用户问: '+ query
print 'BOT答复: ' + data['result']['response']['action_list'][0]['say']
print '意图: ' + data['result']['response']['schema']['intent']
slots = data['result']['response']['schema']['slots']
#print '词槽: ' + slot[0]['name'] + " = " +slot[0]['original_word']
for slot in slots:
    print '词槽: ' + slot['name'] + " = " +slot['original_word']
收藏
点赞
0
个赞
共4条回复 最后由计科我最帅回复于2020-12
#5计科我最帅回复于2020-12

能问你个这个问题吗,我也遇到了

 

0
#4计科我最帅回复于2020-12

你好

 

0
#3Maple枫77回复于2019-04

已解决,我将bot_id值误认为机器人id了

0
#2Maple枫77回复于2019-04

在网页打开url显示:

{"error_code":282008,"error_msg":"The request content type is illegal."}

0
TOP
切换版块