request模块做post请求时,body为json格式,并且带有中文,如何请求

ruancan 2017-05-23 08:45:15
# encoding=utf-8
import requests

url = 'http://httpbin.org/post'
d = {'key1': 'value1', 'key2': '你好'}
r = requests.post(url, json=d)
print r.text

这样写的话,请求的body变成了{"key2": "\u4f60\u597d", "key1": "value1"}

# encoding=utf-8
import json

import requests

url = 'http://httpbin.org/post'
d = {'key1': 'value1', 'key2': u'你好'}
r = requests.post(url, data=json.dumps(d, ensure_ascii=False))
print r.text
这样写的话报错:
UnicodeEncodeError: 'ascii' codec can't encode characters in position 10-11: ordinal not in range(128)

如何才能使请求的body为:{"key2": "你好", "key1": "value1"}
后台接口只能解析json,并且一定要是中文才能解析出来,如果是unicode编码的中文则会报错

...全文
5850 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
颖辉小居 2020-08-06
  • 打赏
  • 举报
回复
试了不行,paython 3.8 moco 1.1
qq_34390294 2021-07-02
  • 举报
回复
@颖辉小居 请问解决了吗 我也遇到了这个问题
ruancan 2017-05-23
  • 打赏
  • 举报
回复
好了,问题已经解决了,看了一下requests的源码.以下为解决方法: 将requests库中的models.py文件中的第461行: body = complexjson.dumps(json) 修改为: body = complexjson.dumps(json, separators=(',', ':'), ensure_ascii=False) 使用: # encoding=utf-8 import requests url = 'http://httpbin.org/post' d = {'key1': 'value1', 'key2': '你好'} r = requests.post(url, json=d) print r.text 即可使得body中的json串直接为中文 fiddler中的抓包信息如下: POST http://httpbin.org/post HTTP/1.1 Host: httpbin.org Connection: keep-alive Accept-Encoding: gzip, deflate Accept: */* User-Agent: python-requests/2.13.0 Content-Length: 33 Content-Type: application/json {"key2":"你好","key1":"value1"}
内容概要:本文详细记录了对一个Android ARM64静态ELF文件中字符串加密机制的逆向分析过程。该ELF文件的所有字符串均被加密,无法通过常规strings命令或IDA直接识别。作者通过分析发现,加密字符串存储在.rodata段,其解密所需信息(包括密文地址、长度和16位密钥)保存在.data.rel.ro段的40字节描述符中。核心解密函数sub_10F408采用自反的双pass流密码算法,结合固定密钥KEY_TERM(由.data段24字节数据计算得出),实现字节级非线性、位置与长度相关的加密。文章还复现了完整的Python解密脚本,并揭示了该保护机制的本质为代码混淆而非强加密,最终成功批量解密全部956条字符串,暴露程序真实行为,如shell命令模板、设备标识篡改、网络重置等操作。此外,文中还提及未启用的自定义壳框架及其反dump设计。; 适合人群:具备逆向工程基础的安全研究人员、二进制分析人员及对ELF保护技术感兴趣的开发者。; 使用场景及目标:①学习ELF二进制中字符串加密的典型实现方式与逆向突破口;②掌握从结构识别、函数追踪到算法还原的完整逆向流程;③理解“绑定二进制”的完整性校验设计及其局限性;④实践编写IDAPython脚本自动化提取与解密敏感数据。; 阅读建议:此资源以实战案例驱动,不仅展示技术细节,更强调逆向思维与验证方法,建议读者结合IDA调试环境,逐步跟随文中步骤进行动态分析与算法验证,深入理解每一步的推理依据。

37,739

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧