我正在试图找出如何使用flask和JSONRPC在heroku上运行Web服务。 我想从我的桌面上做到这一点:
from flask_jsonrpc.proxy import ServiceProxy
service = ServiceProxy('http://<myapp>.heroku.com/api')
result = service.App.index()
print result
查看heroku日志我可以看到:
2014-07-05T13:18:42.910030+00:00 app[web.1]: 2014-07-05 13:18:42 [2] [INFO] Listening at: http://0.0.0.0:21040 (2)
并尝试使用该端口:
service = ServiceProxy('http://<myapp>.heroku.com:21020/api')
仍然没有使它工作(似乎挂起)
但是,当我通过领班执行此操作时,我很乐意访问它并且似乎工作正常。
但是当我尝试使用已部署的应用程序时,我得到了:
ValueError: No JSON object could be decoded
这是应用程序(我知道的不多,但只是为了了解heroku如何工作)
import os
from flask import Flask
from flask_jsonrpc import JSONRPC
app = Flask(__name__)
jsonrpc = JSONRPC(app, '/api', enable_web_browsable_api=True)
@jsonrpc.method('App.index')
def index():
return u'Welcome to Flask JSON-RPC'
if __name__ == '__main__':
port = int(os.environ.get("PORT", 5000))
app.run(host='0.0.0.0', debug=True, port=port)
这是我的Procfile的内容:
web: gunicorn run:app -p $PORT
我错过了一些明显的东西吗? 欢呼声。
L,
P.S
访问http://.heroku.com/api/browse 从通过领班和部署的应用程序,它似乎工作正常。
[编辑]
已解决:
是的我错过了一些东西....看起来更好的日志我注意到主机是:
host=<myapp>.herokuapp.com
而不是
.heroku.com
将地址更改为正确的地址,一切似乎都正常。 HTTP://.herokuapp.com/api
答案 0 :(得分:0)
全部排序,请参阅原始帖子。 对不起噪音。