Python 使用Curl访问Flask REST Api';行不通
我构建了一个非常简单的FlaskAPI,它询问神经网络通过POST提供了什么样的语言 请求Python 使用Curl访问Flask REST Api';行不通,python,curl,flask-restful,Python,Curl,Flask Restful,我构建了一个非常简单的FlaskAPI,它询问神经网络通过POST提供了什么样的语言 请求 curl -H "Content-Type: application/json" -X POST -d "{"""text""":"""This should be recognized as an english text."""}""" http://<IP>:5000/api/v1.0/findlanguage 就这样。这可能是什么?我错过什么了吗 预期输出应为json对象,如: {
curl -H "Content-Type: application/json" -X POST -d "{"""text""":"""This should be recognized as an english text."""}""" http://<IP>:5000/api/v1.0/findlanguage
就这样。这可能是什么?我错过什么了吗
预期输出应为json对象,如:
{
'task': 'findlanguage',
'result': 'english',
'api': 'v1.0',
'call': 'http://<ip>:5000/api/v1.0/findlanguage'
}
{
“任务”:“findlanguage”,
'结果':'英语',
“api”:“v1.0”,
“调用”:“http://:5000/api/v1.0/findlanguage”
}
请求根本没有被发送;shell在运行curl
之前正在等待进一步的输入
但是上面的POST请求不会引起Flask的任何输出。我想它进入了某种控制台,因为我看到的是:
>_
>_
如果命令有不平衡的引号字符,您将看到这一点。例如,尝试:
curl -H "Content-Type: application/json""
如果您在该提示符下键入另一个“
,并点击返回
键,则将执行该命令
这只是一个例子。问题中的命令示例中的问题不是由于内容类型
字符串周围的引号引起的,而是由于-d
选项的参数引起的
你真的在使用“三双引号”吗。若然,原因为何
不管怎样,在打开的{
大括号前面有一个双引号字符,在结束的}
大括号后面有三个双引号字符,这显然是不对的
为什么不把-d
参数放在单引号中:
-d '{"text":"This should be recognized as an english text."}'
也许都是双引号?尝试将您的请求正文更改为:
“{”text:“这应该被识别为英文文本。”}
您是否有任何flask输出(哪个/什么传入)?在服务器端使用的post获取更多模式的类型?我根据本教程实现了它,其中说明在linux环境中需要这些三重双引号。如果我在没有双引号的情况下尝试,flask将返回HTTP错误500内部服务器Error@dsgdfg:很遗憾,没有。服务器端没有任何内容。您正在使用bash吗?在bash中,三重引号并不能实现您的意图。你需要这样做:“
或“\”“
好的,我刚学到一些新东西。谢谢:-)终于成功了。服务器端出现错误。我总是用单引号返回HTTP 500。Python告诉了我一些代码中的错误。修正了它,它工作了。。。有时候你就是看不见。谢谢大家!!