亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Python Http請(qǐng)求json解析庫(kù)用法解析

瀏覽:2日期:2022-07-04 08:04:12

httpparser介紹

:1.解析字節(jié)類(lèi)型的http與https請(qǐng)求數(shù)據(jù)

:2.支持已k-v形式修改請(qǐng)求數(shù)據(jù)

:3.支持重新編碼請(qǐng)求數(shù)據(jù)

源碼

import json__author = '-ling'def parser(request_data): # 獲取請(qǐng)求的三個(gè)段: # 1.請(qǐng)求方法 URI協(xié)議 版本 # 2.請(qǐng)求頭(Request Header) # 3.請(qǐng)求正文 index0 = request_data.find(b'rnrn') request_predata = request_data[0:index0] index1 = request_predata.find(b'rn') # 請(qǐng)求方法 URI協(xié)議 版本 request_first_data = request_predata[0:index1].decode('utf-8') request_first = {} count = 0 list = ['method', ’url’, ’version’] for line in request_first_data.split(' '): if line != '': request_first[list[count]] = line count += 1 # print('解析請(qǐng)求方法 URI協(xié)議 版本:',request_first) # 請(qǐng)求頭(Request Header) request_header_data = request_predata[index1:].decode('utf-8') request_headers = {} for line in request_header_data.split('rn'): if line != '': line = line.replace(' ','') restemp = line.split(':') if restemp[0] == 'Host' and len(restemp) == 3:restemp[1] = restemp[1] + ':' +restemp[2] request_headers[restemp[0]] = restemp[1] # print('請(qǐng)求頭(Request Header):',request_headers) # 請(qǐng)求正文 request_nextdata = request_data[index0:].decode('utf-8') request_content_temp = request_nextdata.replace('rn', '') request_content = None if request_content_temp != '': try: request_content = json.loads(request_content_temp) except: request_content = {’content’:request_content_temp} # print('請(qǐng)求正文:',request_content) else: pass # print('無(wú)請(qǐng)求正文!') return request_first,request_headers,request_content,request_nextdatadef update_first_data(request_first_data,field,data): request_first_data[field] = datadef update_request_headers(request_headers,field,data): request_headers[field] = datadef update_request_content(request_content,field,data): request_content[field] = datadef encode(request_first_data,request_headers,request_content): request_data = b'' list = ['method', ’url’, ’version’] for key in list: request_data += (request_first_data[key] + ' ').encode('utf-8') request_data += 'rn'.encode('utf-8') for key in request_headers.keys(): request_data += (key + ':' + request_headers[key]).encode('utf-8') request_data += 'rn'.encode('utf-8') request_data += 'rn'.encode('utf-8') if request_content != None: request_data += json.dumps(request_content).encode('utf-8') # print('重新編碼以后的數(shù)據(jù):',request_data.decode('utf-8')) return request_data

如何使用

1.解析請(qǐng)求數(shù)據(jù)

request_first,request_headers,request_content,request_nextdata = httpparser.parser(request_data)

2.修改或者增加各個(gè)部分的字段使用

update_first_data :修改第一行字段數(shù)據(jù) update_request_headers :修改請(qǐng)求頭或者增加請(qǐng)求頭字段 update_request_content :修改請(qǐng)求內(nèi)容字段或者增加請(qǐng)求內(nèi)容

3.再編碼三個(gè)部分的數(shù)據(jù)

encode(request_first_data,request_headers,request_content)

示例(http返回?cái)?shù)據(jù)如下):

b’HTTP/1.0 200 OKrnContent-Type: text/html; charset=utf-8rnContent-Length: 13rnServer: Werkzeug/1.0.1 Python/3.7.7rnDate: Thu, 15 Oct 2020 02:58:54 GMTrnrn<h1>foo!</h1>’

解析出來(lái)的數(shù)據(jù):

注意:(parser傳入字節(jié)類(lèi)型數(shù)據(jù))

解析數(shù)據(jù): {’method’: ’HTTP/1.0’, ’url’: ’200’, ’version’: ’

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 国产99视频精品免视看9 | 三级中文字幕 | 免费精品久久久久久中文字幕 | aaa级精品久久久国产片 | 国产免费播放一区二区 | 成人自拍网站 | 日本乱人伦片中文字幕三区 | 欧美日韩一区二区高清视 | 欧美在线精品一区二区三区 | 人成精品视频三区二区一区 | 精品视频自拍 | 亚洲成人国产精品 | 欧美日韩顶级毛片www免费看 | 日韩午夜在线观看 | japanesevideo乱子| 真人一级一级特黄高清毛片 | 亚洲精品国产第一区二区多人 | 高清欧美性xxxx成熟 | 黄网视频在线观看 | 亚洲精品人成网线在线 | 国产一级视频在线观看 | 91亚洲精品国产第一区 | 国产99视频免费精品是看6 | 色婷婷色综合激情国产日韩 | 99国产精品欧美久久久久久影院 | 国产在线观看一区 | 日韩精品久久久免费观看夜色 | 亚洲精品一区二区三区在线播放 | 亚洲欧洲精品国产二码 | 在线中文字幕精品第5页 | 亚久久伊人精品青青草原2020 | 亚洲美女视频免费 | 中文字幕欧美亚洲 | a毛片全部免费播放 | 欧美大尺码毛片 | 国产人做人爱视频精品 | 伊人婷婷色香五月综合缴激情 | 一级毛片在线完整免费观看 | 日韩一区二区三区在线免费观看 | 一级毛片美国一级j毛片不卡 | 国产精品久久久久影院 |