0

Tornado Webを使用しており、httpclientを使用してhttpリクエストを作成し、Googleカレンダーにイベントを挿入しようとしています。しかし、私は常に400の悪い要求エラーを受け取ります。これについて私を助けてくれませんか?ありがとう!

    event = {
         'start': {
                  'date': '2012-07-11'
                  },
         'end':   {
                  'date': '2012-07-12'
                  },
            }
    body = urllib.urlencode(event)
    http_client = tornado.httpclient.AsyncHTTPClient()
        headers = {'Authorization':'Bearer '+access_token}
        req =   tornado.httpclient.HTTPRequest(url="https://www.googleapis.com/calendar/v3/calendars/primary/events?key="+self.settings["google_developer_key"],
                                         method="POST",
                                         body=body,
                                         headers=headers)
        http_client.fetch(req, callback=self.insert_event_response)

これが私が得たエラーです:

    HTTPResponse(code=400,request_time=None,buffer=<io.BytesIO object at     0x1bb3470>,_body=None,time_info={},request=<tornado.httpclient.HTTPRequest object at 0x1ccc310>,effective_url='https://www.googleapis.com/calendar/v3/calendars/primary/events?key=AIzaSyAyy9M1HZ1nDMdBwGMPDLamhFkCB8iQEJ0',headers={'X-Xss-Protection': '1; mode=block', 'X-Content-Type-Options': 'nosniff', 'Transfer-Encoding': 'chunked', 'Expires': 'Wed, 11 Jul 2012 03:19:29 GMT', 'Server': 'GSE', 'Cache-Control': 'private, max-age=0', 'Date': 'Wed, 11 Jul 2012 03:19:29 GMT', 'X-Frame-Options': 'SAMEORIGIN', 'Content-Type': 'application/json; charset=UTF-8'},error=HTTPError('HTTP 400: Bad Request',))
4

2 に答える 2

1

最後にそれを機能させるには、ヘッダーは次のようにする必要があります。

    headers = {'Authorization':'Bearer '+access_token, 'X-JavaScript-User-Agent':  'Google       APIs Explorer', 'Content-Type':  'application/json'}
于 2012-07-11T20:15:16.797 に答える
0

ボディはurllibエンコードされている必要があり、エンコードされていない必要がありますjsonか?

于 2012-07-11T15:11:59.570 に答える