【Python+postman介面自動化測試】(8)以青雲客機聊天器人和圖靈聊天機器人介面示範python傳送get和post
阿新 • • 發佈:2021-11-09
以青雲客機器人和圖靈機器人介面示範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
本文版權歸作者和部落格園共有,歡迎轉載,但必須給出原文連結,並保留此段宣告,否則保留追究法律責任的權利。