我只是想返回一个JSON对象,但是在它下面打印了HTTP信息。我正在使用Google App Engine和https://github.com/simplegeo/python-oauth2
#!/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()
答案 0 :(得分:2)
添加适当的Content-Type
并切换到self.response.out.write
self.response.headers['Content-Type'] = 'application/json'
self.response.out.write(data)
答案 1 :(得分:1)
而不是print
使用self.response:
self.response.out.write("Some Text")
我认为RequestHandler会自动打印一个默认的HTTP标头,如果没有任何内容写入response.out流,则会发送它。
如果您只想发送JSON数据,可以将“Content-Type”标题信息设置为“application / json”。