在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请求源码示例相关推荐

  1. libcurl 编程进度条和range请求源码示例

    在下面的源码中,我将展示如何使用libcurl提供的进度条功能,以及如何发送range请求, 同时提供了限速功能. 源码如下: //g++ -g curl_range.cpp -o curl_rang ...

  2. Tomcat 处理 HTTP 请求源码分析(下)【转】

    原文地址:https://www.infoq.cn/article/zh-tomcat-http-request-2 很多开源应用服务器都是集成 tomcat 作为 web container 的,而 ...

  3. 利用CMake编译OpenCV-4.1.2源码,使其可以在VS2012下进行图像处理开发的记录(因缺少OpenBLAS未成功)

    目前,OpenCV已经发展到OpenCV4.X了. OpenCV是以CMake 作为项目架构系统的开源项目. 在OpenCV4中,只为我们CMake编译好了64位的适用于vc14(Visual Stu ...

  4. RocketMQ源码(十七)—Broker处理DefaultMQPushConsumer发起的拉取消息请求源码

    转载来源: RocketMQ源码(19)-Broker处理DefaultMQPushConsumer发起的拉取消息请求源码[一万字]_刘Java的博客-CSDN博客 此前我们学习了RocketMQ源码 ...

  5. RocketMQ源码(19)—Broker处理DefaultMQPushConsumer发起的拉取消息请求源码【一万字】

    基于RocketMQ release-4.9.3,深入的介绍了Broker处理DefaultMQPushConsumer发起的拉取消息请求源码. 此前我们学习了RocketMQ源码(18)-Defau ...

  6. hmac-sha1加密算法C源码示例

    HMAC: Hash-based Message Authentication Code,即基于Hash的消息鉴别码 在各大开放平台大行其道的互联网开发潮流中,调用各平台的API接口过程中,无一例外都 ...

  7. Libcurl的编译_HTTP/HTTPS客户端源码示例

    HTTP/HTTPS客户端源码示例 环境:  zlib-1.2.8  openssl-1.0.1g  curl-7.36 Author:  Kagula LastUpdateDate: 2016-05 ...

  8. 视觉机器学习20讲-MATLAB源码示例(6)-贝叶斯学习算法

    视觉机器学习20讲-MATLAB源码示例(6)-贝叶斯学习算法 1. 贝叶斯学习算法 2. Matlab仿真 3. 小结 1. 贝叶斯学习算法 贝叶斯分类算法是统计学的一种分类方法,它是一类利用概率统 ...

  9. 视觉机器学习20讲-MATLAB源码示例(3)-回归学习算法

    视觉机器学习20讲-MATLAB源码示例(3)-回归学习算法 1. 回归学习算法 2. Matlab仿真 3. 仿真结果 4. 小结 1. 回归学习算法 回归学习(Regression Learnin ...

最新文章

  1. 常用数据增广方法,解决数据单一问题
  2. 视学算法第六轮送书活动,16本高质量书免费拿走!
  3. ADODB.Connection 错误 '800a0e7a' 未找到提供程序。该程序可能未正确安装。解决办法...
  4. 802.1X的wpa认证流程-------4-way handshake过程分析
  5. Python_二叉树定义与遍历
  6. 如何在vue中使用剪裁图片插件cropperImage
  7. Mysql 面试常问4 -- 锁模块之事务并发访问产生的问题以及事务隔离机制 InnoDB支持事务
  8. 计算机黑屏的原因及修复,导致笔记本电脑开机黑屏的原因以及对应的修复方法...
  9. lol连接服务器失败怎么修复,英雄联盟lol连接服务器失败怎么办?解决方法大全...
  10. JetPack-Compose - Flutter 动态UI?
  11. 【毕设基础教学】OLED屏幕使用详解 - 单片机 物联网
  12. ⅰcp经济模型_简单介绍一下R中的几种统计分布及常用模型
  13. 上海域格ASR和高通模块 USB端口分配及Linux下拨号说明
  14. scratch零基础
  15. devenv.exe - 系统错误无法启动此程序,因为计算机中丢失 MSVCR100.dll。尝试重新安装该程序以解决此问题。【解决办法】...
  16. 第十届“泰迪杯”比赛B题解题思路及代码论文
  17. CenterNet2训练自己的数据集
  18. CPU Fan speed detection error! Please ensure your CPU cooler is properly connected to the CPU_FAN
  19. 别人问你工资多少时,怎么回答!
  20. libp2p kad 迭代查询

热门文章

  1. 把项目放到码云上,通过git 进行项目管理
  2. Python os模块常用命令
  3. Linux 忘记root登录密码解决方法
  4. Go 学习笔记(42)— Go 标准库之 os/user(获取Uid、Gid、Username、Name、HomeDir、查询用户、查询用户组)
  5. WCF服务端返回:(413) Request Entity Too Large
  6. LWIP网络接口管理
  7. win7如何设置某个软件不弹出用户账户控制
  8. 14/10/校内测试{天天考,丧心病狂}
  9. ecshop /api/client/api.php、/api/client/includes/lib_api.php SQL Injection Vul
  10. 码云上传代码添加标签_如何使用码云-百度经验