2013-07-29 72 views
2

我最近在向timeline_url發出請求時收到400錯誤的請求解析錯誤。Google返回400解析錯誤

進出口張貼到這個網址timeline_url = ' https://www.googleapis.com/mirror/v1/timeline '

編輯 下面是代碼:

headers = {'Content-Type': 'application/json', 
       'Authorization' : 'Bearer %s' % access_token} 
    body = {"text" : "Waddup doe!"} 
    """ ***********THIS IS RETURNING ERROR 400 PARSE ERROR***********""" 
    send_request(timeline_url, headers, 'POST',body) 

的send_request方法是使用requests

req = requests.post(url, data=body, headers=headers) 

我只是試圖插入純文本到我的時間表。

回答

3
body_bytes = sys.getsizeof(body) 
headers['Content-Length'] = body_bytes 

這是插入一個不正確的值到您的請求標頭。 sys.getsizeof描述了數據結構有多大 - 包括指針,計數器等等。它確實描述了字符串表示在HTTP流上有多少字節。

只要刪除這些行; requests將自動填入Content-Length


您沒有描述如何對有效負載進行json編碼。也許你需要這樣做:

req = requests.post(url, data=json.dumps(body), headers=headers) 

參見:http://docs.python-requests.org/en/latest/user/quickstart/#more-complicated-post-requests

+0

我就是這麼做的,在第一和它仍然返回400解析錯誤。我想也許請求是不正確的,因爲它缺少內容長度。你是對的,請求會自動填充。 – Clocker

+1

也許你沒有對身體進行json編碼?看我最近的編輯。 –

+0

在我忘記它是如何完成之前,我知道它行得通。 json.dumps()失蹤。謝謝你,偉大的觀察。 – Clocker