1. 程式人生 > 其它 >【Python+postman介面自動化測試】(8)以青雲客機聊天器人和圖靈聊天機器人介面示範python傳送get和post

【Python+postman介面自動化測試】(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

本文版權歸作者和部落格園共有,歡迎轉載,但必須給出原文連結,並保留此段宣告,否則保留追究法律責任的權利。