最近学习了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("""<!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
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
更新日志
2025年01月24日
2025年01月24日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]