利用urllib2实现http post请求源码示例
在python中利用urllib2或是pycurl都可以实现http POST请求功能,下面是源码:
#!/usr/bin/env python
#encoding: utf-8
#description: demo a simple post form
#date: 2015-12-14import urllib, urllib2def post_url(url, data):req = urllib2.Request(url)data = urllib.urlencode(data)opener = urllib2.build_opener(urllib2.HTTPCookieProcessor())resp = opener.open(req, data)return resp.read()if __name__ == '__main__':url = 'http://127.0.0.1:8000/'payload = {'user':'mayun', 'password':'toprich123','email': 'mayun@google.com', 'submit':'登录','type':''}print post_url(url, payload)
为了测试python中的post功能, 我们自己动手搭建一个python版本的HTTP服务器, 基于gevent中的pywsgi.py, 源码如下
#!/usr/bin/env python
#encoding: utf-8
#benchmark: ab -n 100000 -c 100 http://127.0.0.1:8080/
#note: curl -vo /dev/null 'http://127.0.0.1:8000/'from gevent.pywsgi import WSGIServerdef application(env, start_response):print envif env['REQUEST_METHOD'] == 'POST':print env['wsgi.input'].read().strip()status = '200 OK'headers = [('Content-Type', 'text/html')]start_response(status, headers)yield '<p>Hello'yield 'World</p>'WSGIServer(('', 8000), application).serve_forever()
现在开启HTTP服务器
python gevent_pywsgi.py
然后向该python服务器发送HTTP POST请求
python post_data.py
下面是截图
下面是客户端接收到的响应
参考文献
[1].http://finux.iteye.com/blog/786823 很好
[2].http://cn.python-requests.org/zh_CN/latest/user/quickstart.html#post 关于requests的post请求
利用urllib2实现http post请求源码示例相关推荐
- libcurl 编程进度条和range请求源码示例
在下面的源码中,我将展示如何使用libcurl提供的进度条功能,以及如何发送range请求, 同时提供了限速功能. 源码如下: //g++ -g curl_range.cpp -o curl_rang ...
- Tomcat 处理 HTTP 请求源码分析(下)【转】
原文地址:https://www.infoq.cn/article/zh-tomcat-http-request-2 很多开源应用服务器都是集成 tomcat 作为 web container 的,而 ...
- 利用CMake编译OpenCV-4.1.2源码,使其可以在VS2012下进行图像处理开发的记录(因缺少OpenBLAS未成功)
目前,OpenCV已经发展到OpenCV4.X了. OpenCV是以CMake 作为项目架构系统的开源项目. 在OpenCV4中,只为我们CMake编译好了64位的适用于vc14(Visual Stu ...
- RocketMQ源码(十七)—Broker处理DefaultMQPushConsumer发起的拉取消息请求源码
转载来源: RocketMQ源码(19)-Broker处理DefaultMQPushConsumer发起的拉取消息请求源码[一万字]_刘Java的博客-CSDN博客 此前我们学习了RocketMQ源码 ...
- RocketMQ源码(19)—Broker处理DefaultMQPushConsumer发起的拉取消息请求源码【一万字】
基于RocketMQ release-4.9.3,深入的介绍了Broker处理DefaultMQPushConsumer发起的拉取消息请求源码. 此前我们学习了RocketMQ源码(18)-Defau ...
- hmac-sha1加密算法C源码示例
HMAC: Hash-based Message Authentication Code,即基于Hash的消息鉴别码 在各大开放平台大行其道的互联网开发潮流中,调用各平台的API接口过程中,无一例外都 ...
- Libcurl的编译_HTTP/HTTPS客户端源码示例
HTTP/HTTPS客户端源码示例 环境: zlib-1.2.8 openssl-1.0.1g curl-7.36 Author: Kagula LastUpdateDate: 2016-05 ...
- 视觉机器学习20讲-MATLAB源码示例(6)-贝叶斯学习算法
视觉机器学习20讲-MATLAB源码示例(6)-贝叶斯学习算法 1. 贝叶斯学习算法 2. Matlab仿真 3. 小结 1. 贝叶斯学习算法 贝叶斯分类算法是统计学的一种分类方法,它是一类利用概率统 ...
- 视觉机器学习20讲-MATLAB源码示例(3)-回归学习算法
视觉机器学习20讲-MATLAB源码示例(3)-回归学习算法 1. 回归学习算法 2. Matlab仿真 3. 仿真结果 4. 小结 1. 回归学习算法 回归学习(Regression Learnin ...
最新文章
- 常用数据增广方法,解决数据单一问题
- 视学算法第六轮送书活动,16本高质量书免费拿走!
- ADODB.Connection 错误 '800a0e7a' 未找到提供程序。该程序可能未正确安装。解决办法...
- 802.1X的wpa认证流程-------4-way handshake过程分析
- Python_二叉树定义与遍历
- 如何在vue中使用剪裁图片插件cropperImage
- Mysql 面试常问4 -- 锁模块之事务并发访问产生的问题以及事务隔离机制 InnoDB支持事务
- 计算机黑屏的原因及修复,导致笔记本电脑开机黑屏的原因以及对应的修复方法...
- lol连接服务器失败怎么修复,英雄联盟lol连接服务器失败怎么办?解决方法大全...
- JetPack-Compose - Flutter 动态UI?
- 【毕设基础教学】OLED屏幕使用详解 - 单片机 物联网
- ⅰcp经济模型_简单介绍一下R中的几种统计分布及常用模型
- 上海域格ASR和高通模块 USB端口分配及Linux下拨号说明
- scratch零基础
- devenv.exe - 系统错误无法启动此程序,因为计算机中丢失 MSVCR100.dll。尝试重新安装该程序以解决此问题。【解决办法】...
- 第十届“泰迪杯”比赛B题解题思路及代码论文
- CenterNet2训练自己的数据集
- CPU Fan speed detection error! Please ensure your CPU cooler is properly connected to the CPU_FAN
- 别人问你工资多少时,怎么回答!
- libp2p kad 迭代查询
热门文章
- 把项目放到码云上,通过git 进行项目管理
- Python os模块常用命令
- Linux 忘记root登录密码解决方法
- Go 学习笔记(42)— Go 标准库之 os/user(获取Uid、Gid、Username、Name、HomeDir、查询用户、查询用户组)
- WCF服务端返回:(413) Request Entity Too Large
- LWIP网络接口管理
- win7如何设置某个软件不弹出用户账户控制
- 14/10/校内测试{天天考,丧心病狂}
- ecshop /api/client/api.php、/api/client/includes/lib_api.php SQL Injection Vul
- 码云上传代码添加标签_如何使用码云-百度经验