在关于测试的瓶子文档(http://flask.pocoo.org/docs/testing/)中,它有一行代码
rv = self.app.get('/')在下面,它提到“通过使用self.app.get,我们可以向具有给定路径的应用程序发送HTTP请求”。
在哪里可以找到这些直接访问方法的文档(我假设所有restful方法都有文档)?具体来说,我想知道他们可以采用哪种类型的参数(例如,传递数据、头等)。看看Flask对象的文档,它似乎没有列出这些方法,尽管它在上面的示例中使用了它们。
或者,一个知识渊博的人可以回答我想要解决的问题:我试图模拟向我的服务器发送POST请求,就像使用下面的行一样,如果我是通过HTTP完成的:
res = requests.post("http://localhost:%d/generate" % port,
data=json.dumps(payload),
headers={"content-type": "application/json"})在正确的端口上运行一个Flask应用程序时,上面的功能是有效的。但我试着用以下方法来代替它:
res = self.app.post("/generate",
data=json.dumps(payload),
headers={"content-type": "application/json"})相反,我得到的响应对象是一个400 BAD REQUEST。
发布于 2013-09-25 18:04:00
这在Werkzeug项目中有记录,Flask从该项目获得测试客户端:Werkzeug测试客户端。
测试客户端不发出HTTP请求,而是在内部分发请求,因此不需要指定端口。
文档中不太清楚对JSON的支持,但是如果您传递一个字符串并设置内容类型,应该是可以的,所以我不太清楚为什么要返回代码400。我将检查您的/generate视图函数是否被调用。调试器应该是有用的,以确定400从哪里来。
https://stackoverflow.com/questions/19010203
复制相似问题