python 搭建简单的http server,可直接post文件的实例

yipeiwu_com5年前Python基础

server:

#coding=utf-8
from BaseHTTPServer import BaseHTTPRequestHandler
import cgi
class PostHandler(BaseHTTPRequestHandler):
 def do_POST(self):
  form = cgi.FieldStorage(
   fp=self.rfile,
   headers=self.headers,
   environ={'REQUEST_METHOD':'POST',
      'CONTENT_TYPE':self.headers['Content-Type'],
      }
  )
  self.send_response(200)
  self.end_headers()
  self.wfile.write('Client: %sn ' % str(self.client_address) )
  self.wfile.write('User-agent: %sn' % str(self.headers['user-agent']))
  self.wfile.write('Path: %sn'%self.path)
  self.wfile.write('Form data:n')
  for field in form.keys():
   field_item = form[field]
   filename = field_item.filename
   filevalue = field_item.value
   filesize = len(filevalue)#文件大小(字节)
   #print len(filevalue)
	 #print (filename)
   with open(filename.decode('utf-8'),'wb') as f:
    f.write(filevalue)
  return
 
def StartServer():
 from BaseHTTPServer import HTTPServer
 sever = HTTPServer(("",8080),PostHandler)
 sever.serve_forever()
 
 
 
 
if __name__=='__main__':
 StartServer()

client:

#coding=utf-8
import requests
url = "http://172.16.1.101:8080"
path = "/home/ly/ly.exe"
print path
files = {'file': open(path, 'rb')}
r = requests.post(url, files=files)
print (r.url)
print (r.text)

以上这篇python 搭建简单的http server,可直接post文件的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python 图像对比度增强的几种方法(小结)

Python 图像对比度增强的几种方法(小结)

图像处理工具——灰度直方图 灰度直方图时图像灰度级的函数,用来描述每个灰度级在图像矩阵中的像素个数或者占有率。 例子:矩阵 图片来自网络,侵删! 上面图片的灰度直方图 p...

Python编程实现数学运算求一元二次方程的实根算法示例

Python编程实现数学运算求一元二次方程的实根算法示例

本文实例讲述了Python编程实现数学运算求一元二次方程的实根算法。分享给大家供大家参考,具体如下: 问题: 请定义一个函数quadratic(a, b, c),接收3个参数,返回一元二...

python区分不同数据类型的方法

python区分不同数据类型的方法

python怎么区分不同数据类型? Python判断变量的数据类型的两种方法 一、Python中的数据类型有数字、字符串,列表、元组、字典、集合等。有两种方法判断一个变量的数据类型 1、...

Python线程创建和终止实例代码

python主要是通过thread和threading这两个模块来实现多线程支持。 python的thread模块是比較底层的模块,python的threading模块是对thread做...

Python中为feedparser设置超时时间避免堵塞

python有一个用于解析feed的模块:feedparser,feedparser解析各种feed是非常方便的,唯一比较恼火的是遇到一些badurl,经常会导致堵塞,因此需要为feed...