2012-06-15 4 views
2

Я Тринг отправлять запрос HTTP с использованием httplib2, который содержит некоторые XML и некоторые двоичные данные с помощью этого InfoSet:Python записи двоичных данных в MIME Infoset

MIME-Version: 1.0 
Content-Type: Multipart/Related;boundary=MIME_boundary; 
... 
--MIME_boundary 
Content-Type: application/xop+xml; 

// [the xml string goes here...] 

--MIME_boundary 
Content-Type: image/png 
Content-Transfer-Encoding: binary 
Content-ID: <http://example.org/me.png> 

// [the binary octets for png goes here...] 

Мой подход заключается в создании текстового файла, а затем заполните xml и двоичные данные.

Я имею проблему записи двоичных данных в файл, чтение из с этим детские:

pngfile = open(pngfile, "rb") 
bindata = pngfile.read() 

Какой самый лучший способ сделать это?

+0

В чем проблема с вашим подходом? – schlamar

ответ

0

Мой совет - использовать стандартную MIM-библиотеку Python, как в these examples. Попробуйте с этим:

from email.mime.image import MIMEImage 
from email.mime.base import MIMEBase 
from email.mime.multipart import MIMEMultipart 

msg = MIMEMultipart() 
# Attach XML 
xml = MIMEBase('application','xop+xml') 
xml.set_payload(<xml data here>) 
msg.attach(xml) 

# Attach image 
img = MIMEImage(<image data here>, _subtype='png') 
msg.attach(img) 

# Export the infoset 
print msg.as_string()