server:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
#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:
1
2
3
4
5
6
7
8
9
|
#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文件的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/linux_hacher/article/details/78753805