python服务器端收发请求的实现代码
2014-09-29 00:00
696 查看
最近学习了python的一些服务器端编程,记录在此。
发送get/post请求
利用urllib模块可以方便的实现发送http请求.urllib的参考手册
http://docs.python.org/2/library/urllib.html
建立http服务器,处理get,post请求
注意这里,python把response的消息体记录在了rfile中。BaseHpptServer没有实现do_POST方法,需要自己重写。之后我们新建类RequestHandler,继承自 baseHTTPServer 重写do_POST方法,读出rfile的内容即可。
但是要注意,发送端必须指定content-length.若不指定,程序就会卡在rfile.read()上,不知道读取多少。
参考手册 http://docs.python.org/2/library/basehttpserver.html
发送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("""<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <p>this is get!</p> </body> </html>"""+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("""<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <p>this is put!</p> </body> </html>"""+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服务器端收发请求的实现代码
- python服务器端收发请求的实现代码
- python构造icmp echo请求和实现网络探测器功能代码分享
- python构造icmp echo请求和实现网络探测器功能代码分享
- python 请求服务器的实现代码(http请求和https请求)
- Python 使用requests模块发送GET和POST请求的实现代码
- Python 使用requests模块发送GET和POST请求的实现代码
- Jquery Ajax客户端跨域请求 以及服务端Python代码实现
- ASP.NET中服务器控件Button调用javascript代码运用正则表达式验证TextBox中输入的是否为正整数或正小数,符合要求则继续运行服务器端代码功能的实现
- 使用jQuery全局事件ajaxStart为特定请求实现提示效果的代码
- 用python脚本实现的android代码管理工具rrdt
- PAMIE- Python实现IE自动化的模块(附 网易注册代码)
- Python代码实现Java本地化资源字符串的检查,防止出现空指针异常
- JAVA高级视频 网络编程 05 服务器端接受客户端请求的代码
- Run As(运行方式) 的几种代码实现方式(Python和C#)
- ExtJS之ASP.NET服务器端实现ashx和asmx处理客户端请求
- python 中文字符串的处理实现代码
- 服务器端Page.ClientScript.RegisterStartupScript实现弹窗,让用户确认后执行后面的代码,否则跳出
- .net中的socket异步通信实现--服务器端代码
- python 查找文件夹下所有文件 实现代码