Google App Engine HTTP информация печатается как-то - PullRequest
1 голос
/ 04 декабря 2010

Я просто хочу вернуть объект 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()

Ответы [ 2 ]

2 голосов
/ 04 декабря 2010

Добавьте правильные Content-Type и переключитесь на self.response.out.write

self.response.headers['Content-Type'] = 'application/json'  
self.response.out.write(data)
1 голос
/ 04 декабря 2010

Вместо print используйте self.response :

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

Я полагаю, что RequestHandler автоматически печатает заголовок HTTP по умолчанию и отправляет его, если ничего не записано в поток response.out.

Если вы хотите отправлять только данные JSON, вы можете установить для заголовка «Content-Type» значение «application / json».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...