我試圖使用Flask和請求來構建一個簡單的代理。代碼如下:從Flask中返回一個requests.Response對象
@app.route('/es/<string:index>/<string:type>/<string:id>',
methods=['GET', 'POST', 'PUT']):
def es(index, type, id):
elasticsearch = find_out_where_elasticsearch_lives()
# also handle some authentication
url = '%s%s%s%s' % (elasticsearch, index, type, id)
esreq = requests.Request(method=request.method, url=url,
headers=request.headers, data=request.data)
resp = requests.Session().send(esreq.prepare())
return resp.text
這是有效的,只是它失去了Elasticsearch的狀態代碼。我試圖返回resp
(一requests.models.Response
)直接,但這種失敗
TypeError: 'Response' object is not callable
有另一種,簡單的方法來從瓶返回requests.models.Response
?
合法救星 – lol
謝謝!花了一個小時試圖解決這個問題。 –
使用'resp.content'而不是'resp.text'來處理二進制和文本響應 – iman