python连接服务器代码_python服务器端收发请求的实现代码
最近学习了python的一些服务器端编程,记录在此。
发送get/post请求
# coding:utf-8
import httplib,urllib #加载模块
#urllib可以打开网站去拿
#res = urllib.urlopen('http://baidu.com');
#print res.headers
#定义需要进行发送的数据
params = urllib.urlencode({'param':'6'});
#定义一些文件头
headers = {"Content-Type":"application/x-www-form-urlencoded",
"Connection":"Keep-Alive",'Content-length':'200'};
#与网站构建一个连接
conn = httplib.HTTPConnection("localhost:8765");
#开始进行数据提交 同时也可以使用get进行
conn.request(method="POST",url="/",body=params,headers=headers);
#返回处理后的数据
response = conn.getresponse();
print response.read()
#判断是否提交成功
if response.status == 200:
print "发布成功!^_^!";
else:
print "发布失败\^0^/";
#关闭连接
conn.close();
利用urllib模块可以方便的实现发送http请求.urllib的参考手册
http://docs.python.org/2/library/urllib.html
建立http服务器,处理get,post请求
# coding:utf-8
from BaseHTTPServer import HTTPServer,BaseHTTPRequestHandler
class RequestHandler(BaseHTTPRequestHandler):
def _writeheaders(self):
print self.path
print self.headers
self.send_response(200);
self.send_header('Content-type','text/html');
self.end_headers()
def do_Head(self):
self._writeheaders()
def do_GET(self):
self._writeheaders()
self.wfile.write("""
this is get!
"""+str(self.headers))
def do_POST(self):
self._writeheaders()
length = self.headers.getheader('content-length');
nbytes = int(length)
data = self.rfile.read(nbytes)
self.wfile.write("""
this is put!
"""+str(self.headers)+str(self.command)+str(self.headers.dict)+data)
addr = ('',8765)
server = HTTPServer(addr,RequestHandler)
server.serve_forever()
注意这里,python把response的消息体记录在了rfile中。BaseHpptServer没有实现do_POST方法,需要自己重写。之后我们新建类RequestHandler,继承自 baseHTTPServer 重写do_POST方法,读出rfile的内容即可。
但是要注意,发送端必须指定content-length.若不指定,程序就会卡在rfile.read()上,不知道读取多少。
参考手册 http://docs.python.org/2/library/basehttpserver.html
本文标题: python服务器端收发请求的实现代码
本文地址: http://www.cppcns.com/jiaoben/python/114375.html
python连接服务器代码_python服务器端收发请求的实现代码相关推荐
- python tcp服务器模板_python socket之tcp服务器与客户端示例
Python中用socket编写服务器和客户端... 先说下我的问题,本来预想是,客户端连上服务器,然后向服务器发送信息服务器端代码 while 1: buf = s.recv(1024) 改成 wh ...
- python连接池框架_Python中的连接池是非常重要的!神级程序员详解!
概述 连接池的作用就是为了提高性能,将已经创建好的连接保存在池中,当有请求来时,直接使用已经创建好的连接对Server端进行访问.这样 省略了创建连接和销毁连接的过程(TCP连接建立时的三次握手和销毁 ...
- python连接oracle数据库_Python连接oracle数据库 例子一
step1:下载cx_Oracle模块,cmd--pip install cx_Oracle step2: 1 import cx_Oracle #引用模块cx_Oracle 2 conn=cx_Or ...
- python连接sql数据库_python连接sql server数据库实现增删改查
简述 python连接微软的sql server数据库用的第三方模块叫做pymssql(document:http://www.pymssql.org/en/stable/index.html).在官 ...
- python 写入第二列_python读写Excel表格的实例代码(简单实用)
这篇文章主要介绍了python读写Excel表格的方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下.需要先安装两个库:pip install xlrd.pip ...
- python ftp服务器限速_python实现ftp服务器
import socket import hashlib importstructimport os import settingclass FtpClient(object): features= ...
- python贪吃蛇程序_Python 实现 贪吃蛇大作战 代码分享
感觉游戏审核新政实施后,国内手游市场略冷清,是不是各家的新游戏都在排队等审核.媒体们除了之前竞相追捧<Pokemon Go>热闹了一把,似乎也听不到什么声音了.直到最近几天,突然听见好几人 ...
- python输出星号等腰三角形_python打印直角三角形与等腰三角形实例代码
python打印直角三角形与等腰三角形实例代码 前言 本文通过示例给大家详细介绍了关于python打印三角形的相关,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 1.直角三角形 #i ...
- python测试程序的qps和响应时间代码_python性能测试,请求QPS测试
QPS = (1000ms/平均响应时间ms)*服务并行数量 #!/user/bin/env python #coding=utf-8 import requests import datetime ...
最新文章
- torch The “freeze_support()” line can be omitted if the programis not going to be frozen to produce
- puppet自动化运维之exec资源
- 项目需求分析与建议-NABCD模型
- 九度oj 1523 从上往下打印二叉树
- 梅州有学java的地方吗,梅州java工资水平,梅州java工资很高吗,梅州java工资底薪能到多少...
- redis php 性能测试工具,redis性能测试与客户端连接详解
- mds算法 java_对OAF开发中的MDS的初步研究(转)
- matlab运行没有图片,simulink模型运行时没报错,但scope没有图像,什么原因?
- 计算机组成和体系结构-Flynn分类法
- vue获取微信登陆权限_vue微信授权登录
- du -c 单位 linux,Linux命令 du
- 神经网络机器翻译技术
- Linux:HDMI驅動之HPD
- 0基础学习pythonTASK6——If 、For、While语句
- 程序员年底好找工作吗?
- UVA 11426 GCD - Extreme (II) (欧拉函数)
- STM32 BLDC无刷直流电机 HALL霍尔硬件接口 程序
- GPON PLOAM消息
- 【题解】吉首大学第六届新星杯暨程序设计大赛(新生网络同步赛).2016
- Mac 下安装 go
热门文章
- mysql空密码php_WAMP中如何修改mysql默认空密码_MySQL
- outguess秘钥加密--[BJDCTF 2nd]圣火昭昭-y1ng
- java converter转换器_springboot 自定义转换器(converter)
- Python创建一个循环链表、双向循环链表
- python常用8大算法
- Python3中 对local和nonlocal 关键字的改善认识(新手向)
- javascript技术教程蔡敏_程序员都必掌握的前端教程之JavaScript基础教程(上)
- IText实现url转pdf, 解决中文字体问题
- sqlserver yml配置文件
- Redis RDB、AOF持久化详解