2009-04-13 21 views
1

私はC#で書かれたWebサービスと話すためにSUDSを使用しています。このサービスはURLを受信し、そのWebページをクロールし、コンテンツをbyte []として返します。文字列表現バイトをバイトに変換する方法は?

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を変換するような(エンコーディングでテキストとしてそれを説明する方法です"アスキー")。

私はそれではっきりしません。

ありがとう、 ダニエル。

答えて

3

SOAP要素が示すように、バイトはbase64-encodedです。

デコードするには、Pythonモジュール base64を使用します。その後、btxtは、通常の文字列として扱うことができ

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

2

は、私のような、binasciiモジュールで文字列に戻ってそれを変換する必要があります。

関連する問題