2017-08-03 25 views
0

我想寫一些代碼使用瓶讓其他服務器可以發佈一些數據,然後在燒瓶內,當我收到來自外部的電話,我想做另一個帖子到另一臺服務器。如何在瓶子後期方法中提出請求?

下面是我的代碼

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("''",)) 
+0

請檢查您的Json.dumps功能。另外我需要問你做什麼來獲取Json數據,因爲你的方法只允許POST請求。 –

+0

Json.dump函數沒問題,我只想將sendData.json文章中的數據保存到.json文件中,之後我想調用一個後期api。 – Dreams

+0

requests.post在做什麼? –

回答

0

receiveImageData()年底與return Response(), 200試試吧。

編輯:

我研究了一下。其實它應該工作。試試這樣的:

return jsonify({"success": True}), 202 

你得到什麼錯誤消息?它是相同的服務器/ API,你發佈你的數據和狀態:成功?

+0

無法正常工作。另外,我想返回一些json數據。 – Dreams

+0

你可以給你添加一些評論片段嗎? –

+0

只需添加它,謝謝。 – Dreams

0

,而不是使用jsonify({"status": "success"})

return (Response(),200)

+0

不能正常工作,而且我想返回一些json數據。 – Dreams