亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

Python Http請求json解析庫用法解析

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

httpparser介紹

:1.解析字節類型的http與https請求數據

:2.支持已k-v形式修改請求數據

:3.支持重新編碼請求數據

源碼

import json__author = '-ling'def parser(request_data): # 獲取請求的三個段: # 1.請求方法 URI協議 版本 # 2.請求頭(Request Header) # 3.請求正文 index0 = request_data.find(b'rnrn') request_predata = request_data[0:index0] index1 = request_predata.find(b'rn') # 請求方法 URI協議 版本 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('解析請求方法 URI協議 版本:',request_first) # 請求頭(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('請求頭(Request Header):',request_headers) # 請求正文 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('請求正文:',request_content) else: pass # print('無請求正文!') 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('重新編碼以后的數據:',request_data.decode('utf-8')) return request_data

如何使用

1.解析請求數據

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

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

update_first_data :修改第一行字段數據 update_request_headers :修改請求頭或者增加請求頭字段 update_request_content :修改請求內容字段或者增加請求內容

3.再編碼三個部分的數據

encode(request_first_data,request_headers,request_content)

示例(http返回數據如下):

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>’

解析出來的數據:

注意:(parser傳入字節類型數據)

解析數據: {’method’: ’HTTP/1.0’, ’url’: ’200’, ’version’: ’

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 国产精品高清视亚洲一区二区 | 大香萑75久久精品免费 | 国产日韩精品一区二区 | 欧美一级做一a做片性视频 欧美一级做一级爱a做片性 | 视频一区二区三区蜜桃麻豆 | 国产成人精品亚洲日本在线观看 | 久久婷婷色 | 久久精品国产福利国产琪琪 | 麻豆中文字幕 | 69视频最新在线观看 | freexnxx日本欧美18 | 99久久精彩视频 | 国产一区国产二区国产三区 | 国产精品久久一区二区三区 | 99久久精品免费看国产情侣 | 91精品国产综合久久青草 | 91在线播| 国产草草影院ccyycom软件 | 久久91精品国产91久久户 | 国产精品亚洲一区二区三区在线播放 | 国产欧美一区二区精品性色 | 久久se精品一区二区影院 | 国产精品自在线拍国产 | 一级特大黄色片 | 你懂的网站在线观看网址 | 亚洲综合色丁香麻豆 | 国产精品成 | 国产精品九九视频 | 六月激情综合 | 国产精品2020观看久久 | 爱爱www在线观看视频高清 | 中国一级特黄aa毛片大片 | 国产亚洲视频在线观看 | 欧美一区二区三区不卡 | 久久久久久久亚洲精品一区 | 亚洲国产成人久久三区 | 国产免费无遮挡精品视频 | 欧美三及 | 精品一区二区三区免费视频 | 亚洲国产精品视频在线观看 | 日本特黄色大片 |