1 回答

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超7個(gè)贊
您正在嘗試發(fā)送包含標(biāo)題和內(nèi)容的正文。如果要發(fā)送內(nèi)容類型和內(nèi)容長(zhǎng)度,則需要在標(biāo)題中而不是在正文中進(jìn)行:
headers = {'Content-Type': mimetype, 'Content-Length', str(size)}
request = urllib2.Request(url, data=binary, headers=headers)
如果您未設(shè)置Content-Length標(biāo)頭,則會(huì)自動(dòng)將其設(shè)置為 data
關(guān)于您的錯(cuò)誤:它正在發(fā)生
msg += message_body
僅當(dāng)這兩個(gè)字符串之一為unicode,而另一個(gè)str包含時(shí)\xff,才可能發(fā)生此錯(cuò)誤,因?yàn)樵谶@種情況下,后者會(huì)使用來(lái)自動(dòng)轉(zhuǎn)換為unicode sys.getdefaultencoding()。
我的最終猜測(cè)是:message_body這是您的data,它是一個(gè)str,包含在\xff某處。msg是什么東西已經(jīng)傳遞到前面的HttpConnection,即頭,他們都是unicode的,因?yàn)槟阋床捎玫氖荱nicode在你的頭部至少一個(gè)鍵(值轉(zhuǎn)換為str更早),或已導(dǎo)入unicode_literals的__futures__。
添加回答
舉報(bào)