我使用的是flask网络服务器(eve api的一部分),需要执行内部GET
- 请求。
对于外部请求,我使用此代码:
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,我考虑使用我的烧瓶应用程序的test_client()
,如下所示:
r = app.test_client().get(url,
headers={'Content-Type': 'application/json', 'Accept': 'application/json'}
)
这非常有效,但我需要传递其他参数,如我在第一个使用requests
模块的示例代码段中所看到的那样。所以我将上面的代码扩展到了这个:
r = app.test_client().get(url,
headers={'Content-Type': 'application/json', 'Accept': 'application/json'},
params={'hateoas': False}
)
不幸的是,这会引发TypeError
:
TypeError: init ()得到了一个意外的关键字参数' params'
那么有没有办法处理GET
- 请求在内部使用flask或eve?
我知道有一个get_internal
repo branch前夕提供get_internal()
的开发实施,与post_internal()
等其他请求类型相当。但是我不喜欢使用这个开发分支,因为它不确定这个功能是否会在下一个稳定版本中实现。
答案 0 :(得分:1)
传递查询字符串的方式不对,你应该:
r = app.test_client().get(url,
headers={'Content-Type': 'application/json', 'Accept': 'application/json'},
query_string={'hateoas': False})
使用query_string
关键字。
顺便说一下,如果您要发帖,请使用data
关键字。