記錄一次由br引起的亂碼問題

2021-09-26 04:38:53 字數 1434 閱讀 6800

一、先上原始**

import requests,time,json

import urllib3

urllib3.disable_warnings(urllib3.exceptions.insecurerequestwarning)

_headers =

data =

response = requests.post(url="",data=data,headers=_headers)

print(response.text)

感覺很好,所有頭部資訊都是使用fiddler抓下來的,很簡單的幾行**嗎。。。然後

$ ij����.��e�_����em	�ԣ,���#��n���d�x������yh����dp�b���pq*l�]d`��z��(n,<�gf�q����h�	g74)^[rojȟwk�c�0�9��5_����dr��u��
二、咱也不知道這是個啥,不知道咋回事那就用fiddler監測一下看看

修改部分**:

proxy = '127.0.0.1:8889' # 這個是你在fiddler中設定的埠,記得啟動fiddler

proxies =

response = requests.post(url="",data=data,verify=false,headers=_headers,proxies=proxies)

然後在fiddler中看返回結果,沒問題啊!!

headers =
然後沒啥毛病,返回很正常,so???

我開始對每乙個請求頭中的資料進行注釋處理,最後發現是

'accept-encoding':'gzip, deflate, br',
他的鍋,

四、分析

沒啥問題,在分析,然後刪掉其中的 『br』 結果返回正常,所以問題就在於『br』上!

response.content #位元組方式的響應體,會自動為你解碼 gzip 和 deflate 壓縮 型別:bytes

reponse.text #字串方式的響應體,會自動根據響應頭部的字元編碼進行解碼。型別:str

但是這裡是預設是不支援解碼br的

br 指的是 brotli,是一種全新的資料格式,無失真壓縮,壓縮比極高(比gzip高的)

brotli具體介紹:

brotli優勢:

鑑於這種形勢,所以還是學一下br相關解碼方法

python3 對於解壓br資料使用的是brotli包(pypi:brotli)

使用:

brotli.decompress(response.content).decode('utf-8')

一次 HashSet 所引起的併發問題

github 熱門開源作者 來自 其實系統挺猥瑣。執行緒和記憶體同時重啟應用,還好重啟之後恢復正常。於是開始著手排查問題。中取出資料然後丟到後面的業務執行緒池中做具體的業務處理。threadpoolexecutor executor new threadpoolexecutor coresize m...

記錄一次壓測問題

同一套程式,之前放在伺服器上使用,公司內部壓測和發布給客戶使用,均未出現問題。後由於客戶業務需求,將其移植到嵌入式平台。公司內部壓測過程中,出現三種異常。問題1 大併發壓測,服務程序被killed掉。問題2 大併發壓測,服務掛掉,最後的列印為底層的錯誤日誌。問題3 大併發壓測,服務掛掉,列印另外的底...

一次老闆發話引起的思考

1.員工被重視的感覺是怎樣形成的?一般老闆都希望員工有被重視的感覺,而員工有了這種感覺,也確實可以大大地加強員工的效率和工作的積極性。關鍵是,這種感覺是怎樣形成的呢?其實所謂的被重視的感覺,說白了就是認同感。被肯定,就是被領導贊同 被公認,就是周圍的同事或者team member能相互賞識和尊重,被...