php - python Bottle API在使用外部API时没有Json响应

  显示原文与译文双语对照的内容

我使用 Bottle 为openerp创建了一个 api,工作良好。

每当使用浏览器访问时

例如:http://example.com/api/user_name=uname&password=pwd

它返回json值,同时使用 python 访问相同的api

但是问题是,当我使用php从外部api访问它时,它不响应或者返回json数据。

这是我的wgsi代码


 from bottle import Bottle,get,post,run,request,error,route,template,validate,debug,response
 import json
 import os
 import sys
 import bottle
 @route ('/user_name=:user_name&password=:password', method='GET')
 @route ('/user_name=:user_name&password=:password', method='POST')
 def login_validate(user_name,password):
 import xmlrpclib
 print"test"
 dbname = 'more'
 sock_common = xmlrpclib.ServerProxy ('http://localhost:8069/xmlrpc/common')
 uid = sock_common.login(dbname, user_name, password)
 if uid:
 sock = xmlrpclib.ServerProxy('http://localhost:8069/xmlrpc/object')
 adv_fields = ['name']
 adv_args=[('user_id','=',uid)]
 adv_id = sock.execute(dbname, uid, password, 'res.partner', 'search', adv_args) 
 if adv_id:
 res = sock.execute(dbname, uid, password, 'res.partner', 'read',adv_id, adv_fields) [0]
 print res,type(res)
 return json.dumps({'Sucesss':res['name']})
 else:
 return json.dumps({'Error':'User Found but not a partner'})
 else:
 return json.dumps({'Failure':'Invalid User Name or Password'})
 application = bottle.default_app()

时间: 原作者:

选择:禁用Apache压缩

查看 Include mods-enabled/*.loadInclude mods-enabled/*.conf,检查 mods-enabled 文件夹中是否有对 mod_deflate ( apache拥有 gzip comrpession )的引用。

如果你在像系统一样的Debian上,你可以通过以下方式禁用它:


a2dismod deflate
service apache2 restart

如果你在 redhat/centos上,那么检查 /etc/httpd/conf/httpd.conf 并编辑 LoadModule 行。

选择:读取gzip响应

解压gzip压缩http响应。

...