您好,登錄后才能下訂單哦!
小編給大家分享一下PB在HTTP協議中怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
本例中分別演示了http+json的通信方式與http+Protocol Buffer的通信方式;
本例中的測試用例使用qtaf框架進行管理,實際應用可以視需求而定,只關注核心邏輯即可;
# -*- coding: utf-8 -*- from testbase.testcase import TestCase from testbase import datadrive from testbase.retry import Retry import requests,json import sys from test_pb2 import Person class Case001(TestCase): '''http_client ''' owner = "enbowang" status = TestCase.EnumStatus.Ready priority = TestCase.EnumPriority.Normal timeout = 1 #從這里開始進入核心邏輯 def run_test(self): #json方式模擬 self.start_step("http+json 請求測試") url = "http://127.0.0.1:8080/http_json" body = b'{"name":"xx.xxx"}' response = requests.post(url,data=body) self.log_info("body:" + str(body)) self.log_info('響應狀態:'+ str(response.status_code)) self.log_info('響應內容:'+ str(response.text)) #Protocol Buffer方式模擬,PB格式定義請見該系列上一篇文章 self.start_step("http+Protocol Buffer 請求測試") url = "http://127.0.0.1:8080/http_proto" person = Person() person.name = "xx.xxx" person.id = 123456 body = person.SerializeToString() response = requests.post(url,data=body) self.log_info("body:" + str(body)) self.log_info('響應狀態:'+ str(response.status_code)) self.log_info('響應內容:'+ str(response.text)) if __name__ == '__main__': Case001().debug_run()
服務端使用webpy實現
分別實現了json數據的解析與PB數據的解析
# coding:utf-8 import web,json from test_pb2 import Person urls = ( '/http_json', 'index', '/http_proto','pb' ) #json請求進入該邏輯 class index: def GET(self): return "Hello" def POST(self): data = web.data() result = json.loads(data) return result['name'] #pb請求進入該邏輯 class pb: def GET(self): return "Hello" def POST(self): data = web.data() person = Person() person.ParseFromString(data) #反序列化 return person.name app = web.application(urls, globals()) if __name__ == "__main__": app.run()
以上是“PB在HTTP協議中怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。