Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Python瓶API使用外部API访问时无Json响应_Php_Python_Api_Rest_Bottle - Fatal编程技术网

Php Python瓶API使用外部API访问时无Json响应

Php Python瓶API使用外部API访问时无Json响应,php,python,api,rest,bottle,Php,Python,Api,Rest,Bottle,我用瓶子为openerp创建了一个api,效果很好 每当我使用浏览器访问时 例如: 它返回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

我用瓶子为openerp创建了一个api,效果很好

每当我使用浏览器访问时

例如:

它返回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 gzip压缩

请参阅
Include mods enabled/*.load
Include mods enabled/*.conf
,检查
mods enabled
文件夹中是否有mod_deflate(Apache的gzip会话)的引用

如果您使用的是类似Debian的系统,您可以通过以下方式禁用它:

a2dismod deflate
service apache2 restart
如果您在RedHat/Centos上,请检查
/etc/httpd/conf/httpd.conf
并编辑
LoadModule

第二选择:阅读gzip响应


第一选择:禁用Apache gzip压缩

请参阅
Include mods enabled/*.load
Include mods enabled/*.conf
,检查
mods enabled
文件夹中是否有mod_deflate(Apache的gzip会话)的引用

如果您使用的是类似Debian的系统,您可以通过以下方式禁用它:

a2dismod deflate
service apache2 restart
如果您在RedHat/Centos上,请检查
/etc/httpd/conf/httpd.conf
并编辑
LoadModule

第二选择:阅读gzip响应


您可以发布一些调试信息吗?参数是否正确发送?一些
print(用户名、密码)
可能会有所帮助。当使用php内容类型访问时,返回的不是json,而是gzipHow。您到底在部署这个应用程序吗?涉及哪个web服务器?gzip似乎发生在wsgi之后,即:nginx,apache..我正在使用apache服务器和mod_wsgit如果gzip压缩是在apache方面,您可以发布配置吗?您可以发布一些调试信息吗?参数是否正确发送?一些
print(用户名、密码)
可能会有所帮助。当使用php内容类型访问时,返回的不是json,而是gzipHow。您到底在部署这个应用程序吗?涉及哪个web服务器?gzip似乎发生在wsgi之后,即:nginx,apache..我正在使用apache服务器和mod_wsgit如果gzip压缩是在apache方面,你能发布配置吗?实际上问题是php开发人员的json使用了“json”而不是“JSONp”。我检查了他的代码后,我发现问题出在他这一方详细检查这一点实际上问题出在php开发人员的json上,他使用“json”而不是“JSONp”。在我检查了他的代码后,我发现问题出在他这一方详细检查这一点