我正在使用SUDS与C#编写的Web服务进行通信。该服务接收一个URL,抓取其网页,然后将其内容返回为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从字符串转换为字节,然后将其解释为带编码的文本(如“ascii”)。
我不清楚。
谢谢, 丹尼尔。
答案 0 :(得分:3)
正如SOAP元素所说,字节是base64-encoded。
要解码,请使用python模块
base64
答案 1 :(得分:2)
我需要使用binascii模块将其转换回字符串,例如:
>>> btxt = binascii.a2b_base64(page.rawByte)
然后可以将btxt视为普通字符串。