我試圖編碼具有MIMEApplication二進制文件在Python 3.3,作爲多部分MIME HTTP POST的一部分的HTTP請求。我有一個問題0X0D被重新解釋爲一個換行符是0xA這個角色,儘管一切都被設置爲二進制字節。創建具有二元組分的多部分MIME消息在Python 3
這裏有一個最小的測試場景中,與二進制字符串中有一個0X0D,越來越誤解:
from email.encoders import encode_noop
from email.generator import BytesGenerator
from email.mime.application import MIMEApplication
import io
app = MIMEApplication(b'Q\x0dQ', _encoder=encode_noop)
b = io.BytesIO()
g = BytesGenerator(b)
g.flatten(app)
for i in b.getvalue()[-3:]:
print("%02x " % i, end="")
print()
輸出是:51 0a 51
當它應該是51 0d 51
注意,這是生成多部分http POST消息的二進制部分。
謝謝!你是對的,這回答了問題。但是,你知道我怎麼可以用這個作爲一個MIME多部分消息的一部分?這就是我真正需要使用它的方式。 – Nils