2009-04-13 3 views
1

Я использую SUDS, чтобы поговорить с веб-службой, написанной C#. Служба получает URL-адрес, просматривает свою веб-страницу, а затем возвращает его содержимое в качестве байта [].Как преобразовать строковое представление байтов обратно в байты?

его тип в SOAP является:

<s:element minOccurs="0" maxOccurs="1" name="rawByte" type="s:base64Binary" /> 

выборочные клиентские коды:

>>> from suds.client import Client 
>>> url = "http://WSServer/Service1.asmx?wsdl" 
>>> client = Client(url) 
>>> page = client.service.GetURLContent("http://www.google.co.uk") 
>>> print page 
(CrawlResult){ 
    crawStatus = "SUCC" 
    rawByte = "PGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb2 ... " 

проблема заключается в том, чтобы преобразовать rawByte из строки в байтах, а затем объяснить его как текст с кодировкой (например, "ASCII").

Я не понимаю.

Thanks, Daniel.

ответ

3

Как указывает элемент SOAP, байты base64-encoded.

Чтобы декодировать, используйте модуль python base64.

2

мне нужно, чтобы преобразовать его обратно в строку с binascii модулем, как:

>>> btxt = binascii.a2b_base64(page.rawByte) 

затем btxt можно рассматривать как нормальную строку.

Смежные вопросы