我在 Linux 服务器上通过 PHP/Soap 连接到 Web 服务。
问题在于某个方法正在通过 SharpZipLib 压缩响应。所以我得到的只是一个乱码字符串。
有人知道用 PHP 或 JS 解压这个文件的方法吗?
谢谢!
更新:
这是返回的压缩测试数据:
UEsDBC0AAAAIAI5TWz3XB/zi//////////8EABQAZGF0YQEAEADWAgAAAAAAABYBAAAAAAAAfZLvToNAEMTnUXyDatXEDxcS/3zxizH6BBVESaESKFHf3t+cOWgtNhcuYXd2Zndug570qjdV6rVVpxV3pQ9tlCnohv+ab6Mc1J0G7kynZBb/5IKeYTDLAGOm28hVwtmpobqItfuYACpp1Ki42jobOGqO1eYRIXI2egHfofeOTqt7OE6o8QQdmbnpjMm01JXOdcG5ZKplVDpeEeBr6LCir2umKaJCj3ZSbGPEE3+Nsd/57fADtfYhoRtwZqmJ/c3Z+bmaHl9Kzq6CX20bWRJzjvMNbtjZ71Fvtdfz2RjPY/2ESy54ExJjC6P78U74XYudOaw2gPUOTSyfRDut9cjLmGma2//24TBTwj85573zDhziFkc29wdQSwECLQAtAAAACACOU1s91wf84v//////////BAAUAAAAAAAAAAAAAAAAAAAAZGF0YQEAEADWAgAAAAAAABYBAAAAAAAAUEsFBgAAAAABAAEARgAAAEwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
最佳答案
很可能,它正在使用 gzip。您应该查看 PHP Zlib和 gzdecode或gzdeflate方法。您可能需要查看内容类型 header 或其他响应 header 。
您还可以尝试在 Web 服务请求中设置 Accept header ,告诉服务您不知道如何处理压缩。如果这是一项适当的服务,它将尊重该请求。
编辑查看 .pdf,他们将数据作为 zip 存档发送 - 因此您需要找到一个处理内存中 zip 存档的 PHP 库。他们用来解码的 C# 代码非常简单 - 他们只是读取存档中的所有条目并展开它们。您可以尝试使用PHP wrapper将其存储为内存缓冲区。以及PHP Zip .
您是否尝试设置要求不压缩的接受 header ?
关于c# - 在 php 或 JS 中解压缩 SharpZipLib 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4047604/