我的应用程序中有一个xml解码函数,我使用xml.NewDecoder(resp.Body)来解码我的xml。NewDecoder函数接收一个io.Reader。但问题是,在我来自服务器的响应中,我收到了我需要忽略的前230个字节,剩下的字节是我想要解码的用base64编码的xml。这里是响应体的一个例子:
--RandomCaracteres...
Content-Type: application/xml; charset=UTF-8; name=response_xml
<Response success="1"/>
--RandomCaracteres...
Content-Type: text/xml; name=report.xml
Content-Transfer-Encoding: base64
PE5leHBvc2VSZXBvcnQgdmVyc2lvbj0iMi4wIj4KPHNjYW5zPgo8c2NhbiBpZD0iNDYwMCIgbmFt......
我只需要读PE5leHBvc2VSZXBv..。数据。使用以下代码,我可以读取xml:
bodyBytes, _ := ioutil.ReadAll(resp.Body)
defer resp.Body.Close()
data, err := base64.StdEncoding.DecodeString(string(bodyBytes)[230:])
fmt.Println(data)
但是我不能调用xml.NewDecoder()函数,因为数据不是io.Reader类型。有什么方法从字符串中复制解码对象吗?
https://stackoverflow.com/questions/46007827
复制相似问题