python 模拟Http请求
来源:互联网 发布:如何评价巴基斯坦知乎 编辑:程序博客网 时间:2024/06/06 14:19
先简单声明一下http请求中post和get之间一个简单的区别:
GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以&相连,如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0%E5%A5%BD。如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII。POST把提交的数据则放置在是HTTP包的包体中。
发送请求模拟: import requests
payload = {"data": "你好"}
r = requests.post(url,data=payload)
print r.content
而在Django中获取payload这个参数: body = request.body
json.dumps(urllib.unquote(vaule),encoding='utf-8',ensure_ascii=False)
传给request的参数为中文经过转码的,如图“============start==========”的下一行CHANGE_TYPE的值%E6%96:
找了好久才知道解决方案!
至于原理,http://blog.csdn.net/shanliangliuxing/article/details/8112986这篇文章讲的不错!
——————-分割线为更新——————–
同事突然传了json数据给我,不传dict,然后,我发现就不会这么麻烦了!
传过来的JSON数据直接进行json.loads(data)就可以使用了。好方法!
后来,我用Django的httpResponse对面传输的时候,直接传了字典,结果同事只是拿到key,不能拿到value。才发现,如果传dict会很不好。果断传json数据了!
总结:在Http各种请求的时候,传输的数据最好使用json数据格式
阅读全文
0 0
- python 模拟Http请求
- python http请求及cookie的模拟
- python http请求及cookie的模拟
- python http请求以及Cookie的模拟
- python模拟http请求实现网站登录
- python模拟登录http请求中的Accept-Language
- python模拟登录http请求中的Accept-Language
- Python模拟HTTPS请求返回HTTP 401 unauthorized错误
- Python模拟HTTPS请求返回HTTP 401 unauthorized错误
- python socket模拟一个http Get请求页面
- python爬虫3之http get请求模拟
- 【技术干货】Python之模拟http请求测试
- HttpWebRequest 模拟Http请求
- telnet模拟Http请求
- Jave 模拟 http 请求
- http请求模拟
- telnet模拟HTTP请求
- 模拟http 请求
- 蓝桥杯训练——最长递增子序列
- java.lang.ClassCastException: 错误解析
- Java Callable、Future的两种使用方式
- convert()函数在SQL中的使用
- java邮件发送工具
- python 模拟Http请求
- 在MyEclipse中启动Tomcat报错Error initializing endpoint java.net.SocketException: Unrecognized Windows Sock
- 观察者模式与回调
- SourceInsight下载、安装、破解、主题修改、其他配置全过程
- 2017.09.21--env环境变量
- Unknown Treasure HDU
- python-xml.etree.ElementTree解析xml文件
- 不同地间,不同元器件作用
- Android 输入法键盘管理