【发布时间】:2015-12-12 13:48:05
【问题描述】:
我正在使用flask 网络服务器(eve api 的一部分)并且需要执行内部GET-request。
对于外部请求,我使用以下代码:
url = 'http://127.0.0.1:5000/simulations'
r = requests.get(url,
headers={'Content-Type': 'application/json', 'Accept': 'application/json'},
params={'hateoas': False}
)
但是,当尝试使用来自烧瓶应用程序中的函数的requests 模块执行请求并引发ConnectionRefusedError 时,这不起作用:
requests.exceptions.ConnectionError: ('连接中止。', ConnectionRefusedError(61, '连接被拒绝'))
为了制作这个request available internally,我考虑使用我的flask应用程序的test_client(),如下所示:
r = app.test_client().get(url,
headers={'Content-Type': 'application/json', 'Accept': 'application/json'}
)
这工作得很好,但我需要传递额外的参数,正如你在我的第一个示例 sn-p 中使用 requests 模块看到的那样。所以我把上面的代码扩展成这样:
r = app.test_client().get(url,
headers={'Content-Type': 'application/json', 'Accept': 'application/json'},
params={'hateoas': False}
)
不幸的是,这引发了TypeError:
TypeError: init() 得到了一个意外的关键字参数 'params'
那么有没有办法在内部使用flask或eve来处理GET-request?
我知道有一个 get_internal repo branch 用于 eve 提供 get_internal() 的开发实现,与 post_internal() 等其他请求类型相当。但我不喜欢使用这个开发分支,因为不确定这个功能是否会在下一个稳定版本中实现。
【问题讨论】:
标签: python flask request internal eve