2010-12-04 63 views
1

我只想返回一个JSON对象,但HTTP信息正在打印在它下面。我使用谷歌App Engine和https://github.com/simplegeo/python-oauth2Google App Engine HTTP信息以某种方式打印

#!/usr/bin/env python 

from google.appengine.ext import webapp 
from google.appengine.ext.webapp import util 
from django.utils import simplejson as json 
import oauth2 as oauth 
import cgi 

class MainHandler(webapp.RequestHandler): 

    def get(self): 

    consumer = oauth.Consumer(key="xxx", 
     secret="xxx") 

    request_token_url = "xxx" 

    client = oauth.Client(consumer) 

    resp, content = client.request(request_token_url, "POST") 

    if resp['status'] != '200': 
     raise Exception("Invalid response %s." % resp['status']) 

    request_token = dict(cgi.parse_qsl(content)) 
    print 
    print json.dumps({"oauth_token": request_token['oauth_token'], "oauth_token_secret": request_token['oauth_token_secret']}) 

def main(): 
    application = webapp.WSGIApplication([('/', MainHandler)], 
             debug=True) 
    util.run_wsgi_app(application) 


if __name__ == '__main__': 
    main() 

回答

2

添加适当的Content-Type并切换到self.response.out.write

self.response.headers['Content-Type'] = 'application/json' 
self.response.out.write(data) 
1

代替print使用self.response

self.response.out.write("Some Text") 

我假设RequestHandler自动打印默认HTTP标头如果不出写入响应将其发送.out流。

如果您只想发送JSON数据,您可以将“Content-Type”标题信息设置为“application/json”。