Flask / Eve:带参数的内部 GET 请求
Flask / Eve: Internal GET request with parameters
我正在使用 flask webserver (part of an 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}
)
但是,当尝试使用来自 Flask 应用程序中的函数的 requests
模块执行请求并引发 ConnectionRefusedError
:
时,这不起作用
requests.exceptions.ConnectionError: ('Connection aborted.',
ConnectionRefusedError(61, 'Connection refused'))
为了使我的 flask 应用程序 request available internally, I considered to use the 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() got an unexpected keyword argument 'params'
那么有没有办法在内部使用 flask 或 eve 来处理 GET
请求?
我知道有一个 get_internal
repo branch 用于交付 get_internal()
的开发实现,可与 post_internal()
等其他请求类型相媲美。但是我不喜欢使用这个开发分支,因为不确定下一个稳定版本是否会实现这个功能。
你传递查询字符串的方式不对,你应该:
r = app.test_client().get(url,
headers={'Content-Type': 'application/json', 'Accept': 'application/json'},
query_string={'hateoas': False})
使用 query_string
关键字。
顺便说一下,如果您要发帖,请使用 data
关键字。
我正在使用 flask webserver (part of an 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}
)
但是,当尝试使用来自 Flask 应用程序中的函数的 requests
模块执行请求并引发 ConnectionRefusedError
:
requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionRefusedError(61, 'Connection refused'))
为了使我的 flask 应用程序 request available internally, I considered to use the 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() got an unexpected keyword argument 'params'
那么有没有办法在内部使用 flask 或 eve 来处理 GET
请求?
我知道有一个 get_internal
repo branch 用于交付 get_internal()
的开发实现,可与 post_internal()
等其他请求类型相媲美。但是我不喜欢使用这个开发分支,因为不确定下一个稳定版本是否会实现这个功能。
你传递查询字符串的方式不对,你应该:
r = app.test_client().get(url,
headers={'Content-Type': 'application/json', 'Accept': 'application/json'},
query_string={'hateoas': False})
使用 query_string
关键字。
顺便说一下,如果您要发帖,请使用 data
关键字。