您好,登錄后才能下訂單哦!
小編給大家分享一下PB在HTTP協(xié)議中怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
本例中分別演示了http+json的通信方式與http+Protocol Buffer的通信方式;
本例中的測試用例使用qtaf框架進(jìn)行管理,實(shí)際應(yīng)用可以視需求而定,只關(guān)注核心邏輯即可;
# -*- 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 #從這里開始進(jìn)入核心邏輯 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('響應(yīng)狀態(tài):'+ str(response.status_code)) self.log_info('響應(yīng)內(nèi)容:'+ 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('響應(yīng)狀態(tài):'+ str(response.status_code)) self.log_info('響應(yīng)內(nèi)容:'+ str(response.text)) if __name__ == '__main__': Case001().debug_run()
服務(wù)端使用webpy實(shí)現(xiàn)
分別實(shí)現(xiàn)了json數(shù)據(jù)的解析與PB數(shù)據(jù)的解析
# coding:utf-8 import web,json from test_pb2 import Person urls = ( '/http_json', 'index', '/http_proto','pb' ) #json請求進(jìn)入該邏輯 class index: def GET(self): return "Hello" def POST(self): data = web.data() result = json.loads(data) return result['name'] #pb請求進(jìn)入該邏輯 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協(xié)議中怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。