网络编程
位置:首页>> 网络编程>> Python编程>> python 搭建简单的http server,可直接post文件的实例

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

作者:Ghost丶  发布时间:2021-08-25 15:07:39 

标签:python,http,server,post

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)

来源:https://blog.csdn.net/linux_hacher/article/details/78753805

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com