【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岁!
我:

posted on 2021-11-09 16:28  hello_殷  阅读(896)  评论(0编辑  收藏  举报

导航

作者:hello.殷
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。