1

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()
4

1 に答える 1

1

第 1 の選択肢: 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ます。

2 番目の選択肢: gzip 応答を読み取る

gzip 圧縮された http 応答を解凍する

于 2013-07-05T13:17:12.637 に答える