现在的项目中需要通过标准 SOAP 协议从接口获取数据,获取的数据应该是 PDF 二进制流数据,但是打印出来的文件无法打开!报错信息为文件已损坏或者使用了“预览”无法识别的文件格式。
我是使用 savon 来传递数据获取返回值值的。
返回值:
<?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S='http://schemas.xmlsoap.org/soap/envelope/'><S:Body>
<GetAPACShippingLabelResponse xmlns="http://api.apacshipping.ebay.com/">
<GetAPACShippingLabelResult>
<Version>4.0.0</Version>
<Ack>Success</Ack>
<Message>GetAPACShippingLabel succeeded</Message>
<Timestamp>2017-08-20T22:51:16.089-07:00</Timestamp>
<InvocationID>1BB473DE928741CBA40C848F142EC9F5</InvocationID>
<Label>JVBERi0xLjQKJeLjz9MKMiAwIG9iago8PC9MZW5ndGggNDgvRmlsdGVyL0ZsYXRlRGVjb2RlPj5zdHJlYW0KeJwr5HIK4TJQMLKwUAhJ4XIN4QrkKlQwVDAAQgiZnKugH5FmqOCSrxDIBQDgwgm9CmVuZHN0cmVhbQplbmRvYmoKNSAwIG9iago8PC9UeXBlL1hPYmplY3QvQ29sb3JTcGFjZS9EZXZpY2VSR0IvU3VidHlwZS9JbWFnZS9CaXRzUGVyQ29tcG9uZW50IDgvV2lkdGggNDIzL0xlbmd0aCA5ODIzL0hlaWdodCA3Ni9GaWx0ZXIvRENURGVjb2RlPj5zdHJlYW0K/9j/4AAQSkZJRgABAQEBOwE7AAD/7gAOQWRvYmUAZIAAAAAB/9sAQwAMCAgICAgMCAgMEAsLCxAUDg0NDhQYEhMTExIYFBIUFBQUEhQUGx4eHhsUJCcnJyckMjU1NTI7Ozs7Ozs7Ozs7/9sAQwENCgoMCgwODAwOEQ4ODhEUDw8PD.......</Label>
</GetAPACShippingLabelResult>
</GetAPACShippingLabelResponse>
</S:Body></S:Envelope>
'Label' 标签后面应该是二进制流的,现在直接打印出来的 PDF 文件无法打开。