我想寫一些代碼使用瓶讓其他服務器可以發佈一些數據,然後在燒瓶內,當我收到來自外部的電話,我想做另一個帖子到另一臺服務器。如何在瓶子後期方法中提出請求?
下面是我的代碼
from flask import Flask, jsonify, request
import json
import requests
app = Flask(__name__)
@app.route("/sendData.json", methods=['POST'])
def receiveImageData():
imageData = request.json
# save data to son file
with open(request.json['image_filename'].split('.')[0] + '.json', 'w+') as f:
json.dump(imageData, f, indent=4)
# post some data to this url
r = requests.post('http://example.com/example.json', son = {'image_filename':'test.jpg', 'image_url': "http://images.come"})
# return json data back for /sendData.json
return jsonify({"status": "success"})
的問題是最後一行{「狀態」:「成功」}不會爲sendData.json返回。
我該如何解決這個問題,或者應該有另一種方法來實現這一點?
下面是從燒瓶錯誤日誌
127.0.0.1 - - [03/Aug/2017 14:38:37] "POST /sendData.json HTTP/1.1" 500 -
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1997, in __call__
return self.wsgi_app(environ, start_response)
File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1985, in wsgi_app
response = self.handle_exception(e)
File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1540, in handle_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1614, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1517, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1598, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/Users/bloomer/Documents/python/api_server/api.py", line 21, in receiveImageData
r = requests.post('http://example.com/example.json', son = {'image_filename':'test.jpg', 'image_url': "http://images.come"})
File "/usr/local/lib/python2.7/site-packages/requests/api.py", line 112, in post
return request('post', url, data=data, json=json, **kwargs)
File "/usr/local/lib/python2.7/site-packages/requests/api.py", line 58, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/local/lib/python2.7/site-packages/requests/sessions.py", line 508, in request
resp = self.send(prep, **send_kwargs)
File "/usr/local/lib/python2.7/site-packages/requests/sessions.py", line 618, in send
r = adapter.send(request, **kwargs)
File "/usr/local/lib/python2.7/site-packages/requests/adapters.py", line 490, in send
raise ConnectionError(err, request=request)
ConnectionError: ('Connection aborted.', BadStatusLine("''",))
請檢查您的Json.dumps功能。另外我需要問你做什麼來獲取Json數據,因爲你的方法只允許POST請求。 –
Json.dump函數沒問題,我只想將sendData.json文章中的數據保存到.json文件中,之後我想調用一個後期api。 – Dreams
requests.post在做什麼? –