【Python接口自动化测试】(8)以青云客机聊天器人和图灵聊天机器人接口示范python发送get和post
以青云客机器人和图灵机器人接口示范python发送get和post
发送请求,我们这里主要使用Python的一个第三方包(需要先安装):requests。 Python3自带的http.client和urllib.request都能发送http请求,不过相对来说使用较麻烦,第三方库requests让发送请求更简单,支持自动编码解码,会话保持,长连等。
requests安装:
pip install requests # 等待安装完成即可
验证是否安装成功:打开命令行,输入python,在python shell环境下输入import requests没有报错即安装成功。
一、requests的使用:
1、一个最简单的GET请求
发送一个请求分3步:
1. 组装请求: 请求可能包含url,params(url参数),data(请求数据),headers(请求头),cookies等,最少必须有url
2. 发送请求,获取响应:支持get,post等各种方法发送,返回的是一个响应对象
3. 解析响应: 输出响应文本
# 导入模块 import requests # 组装请求 url_baidu = "https://www.baidu.com" # 发送请求 res = requests.get(url=url_baidu) # 解析响应 print(res.text)
2、一个最简单的post请求
# 导入测试模块 from urllib import parse import requests # 组装请求 url = 'http://httpbin.org/post' info = {'name': 'python', 'password': 'abcd123'} post_data = parse.urlencode(info).encode('utf-8') # 发送请求 req = requests.post(url, data=post_data) # 解析返回 print(req.text)
二、以青云客聊天机器人为例示范get请求
官方网址:http://api.qingyunke.com/
1、接入指引
请求地址 http://api.qingyunke.com/api.php 请求方式 GET 字符编码 utf-8 请求示例 http://api.qingyunke.com/api.php?key=free&appid=0&msg=你好
参数 示例 说明
key free 必需,固定值
appid 0 可选,0表示智能识别
msg 你好 必需,关键词,提交前请先经过 urlencode 处理
返回结果 {"result":0,"content":"你好,我就开心了"}
☆ 返回结果中{br}表示换行,请自行替换成需要的代码。
☆ 为保证接口稳定,调用频率请控制在200次/10分钟内,我们正在努力提供更稳定的服务
完整请求URL示例:
http://api.qingyunke.com/api.php?key=free&appid=0&msg=你好
其他内容示例:
1 天气:msg=天气深圳 2 中英翻译:msg=翻译i love you 3 智能聊天:msg=你好笑话:msg=笑话 4 歌词⑴:msg=歌词后来 5 歌词⑵:msg=歌词后来-刘若英 6 计算⑴:msg=计算1+1*2/3-4 7 计算⑵:msg=1+1*2/3-4 8 IP⑴:msg=归属127.0.0.1 9 IP⑵:msg=127.0.0.1 10 手机⑴:msg=归属13430108888 11 手机⑵:msg=13430108888 12 成语查询:msg=成语一生一世 13 五笔/拼音:msg=好字的五笔/拼音
2、封装函数
2.1 封装示例:
# 导入模块 import requests from urllib import parse # 组装请求 def test_get(msg): url = 'http://api.qingyunke.com/api.php?key=free&appid=0&msg={}'.format(parse.quote(msg)) html = requests.get(url) return html.json()["content"] # 解析返回并打印 while True: msg = input("我:") res = test_get(msg) print("答:", res)
2.2 执行返回结果:
C:\Users\yzp\AppData\Local\Programs\Python\Python37\python.exe D:/00test/RFTEST/qingyunke
我:您是谁?
答: 我是机器人
我:您在哪?
答: 我在找您
我:您要去哪里?
答: 哪也别去,改天菲菲带你去吧
三、以图灵聊天机器人为例示范post请求
1、接口说明
API V2.0是基于图灵机器人平台语义理解、深度学习等核心技术,为广大开发者和企业提供的在线服务和开发接口。目前API接口可调用聊天对话、语料库、技能三大模块的语料:
- 聊天对话是指平台免费提供的近10亿条公有对话语料,满足用户对话娱乐需求;
- 语料库是指用户在平台上传的私有语料,仅供个人查看使用,帮助用户最便捷的搭建专业领域次的语料。
- 技能服务是指平台打包的26种实用服务技能。涵盖生活、出行、购物等多个领域,一站式满足用户需求。/2、 使用说明
2、编码方式:
UTF-8(调用图灵API的各个环节的编码方式均为UTF-8)/3、接口地址:
http://openapi.turingapi.com/openapi/api/v2
请求方式:
HTTP POST
请求参数:
请求参数格式为 json
请求示例:
{
"reqType":0,
"perception": {
"inputText": {
"text": "附近的酒店"
},
"inputImage": {
"url": "imageUrl"
},
"selfInfo": {
"location": {
"city": "北京",
"province": "北京",
"street": "信息路"
}
}
},
"userInfo": {
"apiKey": "",
"userId": ""
}
}
部分参数说明,完整接口说明请看图灵api官方网址:https://www.kancloud.cn/turing/www-tuling123-com/718227:
接口中apiKey需要自行上官网申请:http://www.turingapi.com/
3、完整调用示例:
import requests url = "http://openapi.tuling123.com/openapi/api/v2" data = { "reqType": 0, "perception": { "inputText": { "text": "附近的酒店" }, "inputImage": { "url": "imageUrl" }, "selfInfo": { "location": { "city": "北京", "province": "北京", "street": "信息路" } } }, "userInfo": { "apiKey": "1c99470a8a8354e248a4c229234d14af", "userId": "1" } } res = requests.post(url=url, json=data) # JSON格式的请求,将数据赋给json参数 print(res.text)
接口返回:
{ "intent": { "actionName": "", "code": 10037, "intentName": "" }, "results": [ { "groupType": 1, "resultType": "text", "values": { "text": "我还没去过那,所以我暂时就不给你推荐了" } } ] }
4 、封装函数:
4.1 封装示例
import requests while True: url = "http://openapi.tuling123.com/openapi/api/v2" question = input("我:") data = { "reqType": 0, "perception": { "inputText": { "text": question } }, "userInfo": { "apiKey": "e825286159f9f57db1b597995d7b", "userId": "1234" } } res = requests.post(url=url, json=data) # JSON格式的请求,将数据赋给json参数 answer = res.json()["results"][0]["values"]["text"] print("答:"+answer)
4.2 执行返回结果
C:\Users\yzp\AppData\Local\Programs\Python\Python37\python.exe D:/00test/RFTEST/test_post.py 我:你是谁? 答:我是机器人 我:你今年多大了 答:18岁! 我:
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。
本文来自博客园,作者:hello_殷,转载请注明原文链接:https://www.cnblogs.com/yinzuopu/p/15529237.html
本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。