Ich habe zwei Computer im selben Netzwerk und ich versuche, eine Datei von einem zum anderen mit Python (im Kontext eines größeren Projekts) zu übergeben.Hochladen von Datei mit Python zu Flasche Server
Auf der Server-Seite ich die folgende Flasche Skript habe:
import bottle
import json
@bottle.hook('after_request')
def enable_cors():
"""
You need to add some headers to each request.
Don't use the wildcard '*' for Access-Control-Allow-Origin in production.
"""
bottle.response.headers['Access-Control-Allow-Origin'] = '*'
bottle.response.headers['Access-Control-Allow-Methods'] = 'PUT, GET, POST, DELETE, OPTIONS'
bottle.response.headers['Access-Control-Allow-Headers'] = 'Origin, Accept, Content-Type, X-Requested-With, X-CSRF-Token'
# LANDING (IT IS NOT REALLY NEEDED JUST TO CHECK STUFF)
@bottle.route('/', method='GET')
def root():
return {
'api': 'api/'
}
@bottle.route('/api', method='POST')
def upload():
upload = bottle.request.files.get('file')
print upload.filename
upload.save('input.txt')
if __name__ == '__main__':
bottle.run(host='0.0.0.0', port=8080, debug=True)
Auf der Client-Seite Ich versuche, die Datei über die Anforderungs Bibliothek zu senden, wie:
import sys
import requests
r = requests.post('http://ip:port/api/', files={'file': open(sys.argv[1], 'rb')})
print r
(ip und Port entsprechend den jeweiligen Werten).
Ich bekomme diesen Fehler, den ich nicht sicher bin, wie man damit umgeht.
Traceback (most recent call last):
File "loopmatch.py", line 4, in <module>
r = requests.post('http://ip:port/api/', files={'file': open(sys.argv[1], 'rb')})
File "/usr/local/lib/python2.7/site-packages/requests/api.py", line 111, in post
return request('post', url, data=data, json=json, **kwargs)
File "/usr/local/lib/python2.7/site-packages/requests/api.py", line 57, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/local/lib/python2.7/site-packages/requests/sessions.py", line 475, in request
resp = self.send(prep, **send_kwargs)
File "/usr/local/lib/python2.7/site-packages/requests/sessions.py", line 585, in send
r = adapter.send(request, **kwargs)
File "/usr/local/lib/python2.7/site-packages/requests/adapters.py", line 453, in send
raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', error(32, 'Broken pipe'))
Jede Hilfe wird sehr geschätzt.
Danke!
Ich sehe kein Problem da drüben ... sollte definitiv funktionieren ... Laufen Sie hinter Proxy? Versuchen Sie, die pyc zu reinigen und schließen Sie die PID bei Bedarf und stellen Sie sicher, dass der ip-Port, den Sie ausführen, frei ist, bevor Sie laufen ... –
Alles sieht gut aus in diesen Grüßen. Die Route * root * wurde festgelegt, um diese Probleme bewerten zu können. Ich habe gesehen, was der Fehler war. Aber danke für deine Antwort! – jaumebonet