我正在使用JSON rpc1.10.3lib在Python上创建一个JSON-rpcapi。在
我做了服务器和客户端。在
在服务器上,我做了两个方法,连接到MySQl数据库,检索我需要的字典并将它们添加到dispatcher中。在
但是当我运行客户机时,我得到的是405响应(方法不允许)。在
怎么了?在
服务器
from werkzeug.wrappers import Request, Response
from werkzeug.serving import run_simple
from jsonrpc import JSONRPCResponseManager, dispatcher
HOST = 'localhost'
PORT = 80
def __init__(self, conn):
self.conn = conn
@dispatcher.add_method
def get_detailed_usage(self, serviceRef, fromDate, toDate, excludeCallsCoveredByBundleAllowance):
sql_where = []
sql_vars = []
if serviceRef is not None:
sql_where.append("pc.service_ref={}").format(serviceRef)
sql_vars.append(serviceRef)
if fromDate is not None:
sql_where.append("rc.start_time={}").format(fromDate)
sql_vars.append(fromDate)
if toDate is not None:
sql_where.append("rc.end_time={}").format(toDate)
sql_vars.append(toDate)
if excludeCallsCoveredByBundleAllowance is not None:
sql_where.append("excludeCallsCoveredByBundleAllowance={}").format(excludeCallsCoveredByBundleAllowance)
sql_vars.append(excludeCallsCoveredByBundleAllowance)
sql_query = """
SELECT...
FROM...
JOIN...
ON...
"""
if sql_where:
sql_query += " WHERE" + " AND ".join(sql_where)
cursor = self.conn.cursor()
cursor.execute(sql_query, *sql_vars)
result = cursor.fetchall()
return dict(result)
@dispatcher.add_method
def get_summary_usage(self, serviceRef, fromDate, toDate, excludeCallsCoveredByBundleAllowance):
sql_where = []
sql_vars = []
if serviceRef is not None:
sql_where.append("pc.service_ref={}").format(serviceRef)
sql_vars.append(serviceRef)
if fromDate is not None:
sql_where.append("rc.start_time={}").format(fromDate)
sql_vars.append(fromDate)
if toDate is not None:
sql_where.append("rc.end_time={}").format(toDate)
sql_vars.append(toDate)
if excludeCallsCoveredByBundleAllowance is not None:
sql_where.append("excludeCallsCoveredByBundleAllowance={}").format(excludeCallsCoveredByBundleAllowance)
sql_vars.append(excludeCallsCoveredByBundleAllowance)
sql_query = """
SELECT...
FROM...
JOIN...
ON...
"""
if sql_where:
sql_query += " WHERE" + " AND ".join(sql_where)
cursor = self.conn.cursor()
cursor.execute(sql_query, *sql_vars)
result = cursor.fetchall()
return dict(result)
def application(request):
response = JSONRPCResponseManager.handle(request.data, dispatcher)
return Response(response.json, response.http_status, mimetype='application/json')
if __name__ == '__main__':
run_simple(HOST, PORT, application)
客户
^{pr2}$
我认为在客户端,正确的url应该是
相关问题 更多 >
编程相关推荐