首页 > 利用urllib2实现http post请求源码示例

利用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': '[email protected]', '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 '

Hello'yield 'World

'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请求



更多相关:

  • 出品 | FlyAI编译 | 林椿眄编辑 | DonnaPython 已经成为机器学习及其他科学领域中的主流语言。它不但与多种深度学习框架兼容,而且还包含优秀的工具包和依赖库,方便我们对数据进行预处理和可视化操作。据最新消息,到2019 年底,Numpy 等很多科学计算工具包都将停止支持Python 2版本,而 2018 年后 Num...

  • 转载: 简单回答题主的问题,如果编程零基础,建议以python入门,但是并不建议以此作为数据分析的全部。R可以说是必须要学的,除此两者以外的,可以泛泛的关注。 =================================分割线================================= 下面详细说一下自己的看法,仅仅是个人...

  • 随着人工智能时代的来临,Python开始崭露头角并迅速吸引了人们的广泛关注。很多人想要从事Python开发,但零基础入门Python,需要了解什么呢?看看你都掌握了吗? 1.Python是如何被解释执行的? Python是一种解释型语言,它可以直接从源代码运行程序。程序员编写的源代码首先转变成一种中间语言代码,然后再被转换成能够直接执...

  • 该文章为转载内容,请关注文章作者博客https://blog.csdn.net/io569417668 Open3D是一个开源库,支持快速开发和处理3D数据。Open3D在c++和Python中公开了一组精心选择的数据结构和算法。后端是高度优化的,并且是为并行化而设置的。 本系列学习计划有Blue同学作为发起人,主要以Open3D官...

  • Python的WEB框架有Django、Tornado、Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM、模型绑定、模板引擎、缓存、Session等诸多功能。本文将以下方面带大家全面了解Django框架,笔者使用的版本为1.10.流程基本配置路由系统视图view模板Model中间件Form认证...

  • 我知道这个错误已经被讨论了很多,但似乎每种情况都有不同的原因。我使用下面的代码和selenium从一个网站提取一些数据,并在第二次调用浏览器.get(url)。在import openpyxl, osfrom selenium import webdriveros.chdir('C://Users/user/Documents')os...

  •   onReady(){// #ifdef H5// 初始化微信 let url = location.href.split("#")[0];configWxMp({debug: false,jsApiList: ["scanQRCode"],url: this.config.apiList.wxMpConfig,data: {ur...

  • wget -S "http:/192.168.0.102:8080/cache/lookup_url?url=http://www.dnion.com/"...

  • 首先说一下业务需求: 需要在当前各主流浏览器上从tab标签形式弹出一个页面,尽量不要以单独窗口弹出。 下面是网上搜集并修改、验证后的js代码,以备以后参阅。 function getUnionCookie(B) {var A = new RegExp(B + "=([^;]+)"), _ = A.exec(document....