解码从HTTP流Python提取的Cookie变量

2024-04-25 17:35:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用python向服务器发送请求。我从服务器上得到一个饼干。我试图解码服务器使用的编码方案-我怀疑它不是utf-8就是base64。 所以我创建了头和连接对象。在

resp, content = httpobj.request(server, 'POST', headers=HTTPheader, body=HTTPbody)

然后我从HTTP流中提取cookie

^{pr2}$

我尝试过str.decode()unicode(),但我无法获得cookie的未打包内容。在

假设饼干是

MjAyMTNiZWE4ZmYxYTMwOVPJ7Jh0B%2BMUcE4si5oDcH7nKo4kAI8CMYgKqn6yXpgtXOSGs8J9gm20bgSlYMUJC5rmiQ1Ch5nUUlQEQNmrsy5LDgAuuidQaZJE5z%2BFqAJPnlJaAqG2Fvvk5ishG%2FsH%2FA%3D%3D

我期望的输出是

20213bea8ff1a309SÉì˜tLQÁ8².hÁûœª8<Æ *©úÉzµs’Ïö¶Ñ¸•ƒ$.kš$5gQIPf®Ì¹,8�ºèA¦IœöZ€$ùå% *ao¾Nb²¶ÁöÃ


Tags: 对象服务器servercookierequestcontent解码post
1条回答
网友
1楼 · 发布于 2024-04-25 17:35:57

试着这样做:

import urllib
import base64

cookie_val = """MjAyMTNiZWE4ZmYxYTMwOVPJ7Jh0B%2BMUcE4si5oDcH7nKo4kAI8CMYgKqn6yXpgtXOSGs8J9gm20bgSlYMUJC5rmiQ1Ch5nUUlQEQNmrsy5LDgAuuidQaZJE5z%2BFqAJPnlJaAqG2Fvvk5ishG%2FsH%2FA%3D%3D"""

res =  base64.b64decode(urllib.unquote(cookie_val))

print repr(res)

输出:

^{pr2}$

当然,这里的结果是一个8位的字符串,所以你必须对它进行解码才能得到你想要的字符串,我不确定要使用哪种编码,但是有一个使用unicode转义符(unicode文字)的解码结果:

>>> print unicode(res, 'unicode-escape') 
20213bea8ff1a309SÉìtãpN,p~ç*$1ª~²^-\ä³Â}m´n¥`ÅBÔRT@Ù«³.K.º'PiDç?¨ORZ¡¶ûäæ+!ûü

希望这能有所帮助。在

相关问题 更多 >