【问题标题】:I get partial string when I send compressed string via CURL?当我通过 CURL 发送压缩字符串时得到部分字符串?
【发布时间】:2012-09-01 16:13:53
【问题描述】:

我的本​​地服务器上有一个脚本。该脚本通过 CURL (POST) 将一些使用 gzip 压缩的数据发送到实时服务器,然后将其解压缩并将其存储在文件中。

当我将它发送到一个实时服务器时一切正常,但在另一台实时服务器上,如果我压缩字符串,我只会得到它的一部分。我尝试使用加密而不是压缩,问题是一样的。它仅在字符串“未触及”时才有效。

两台实时服务器位于两家不同的托管公司,并且它们具有不同的配置,我怀疑这是我的问题的原因,但我不确定原因是配置的哪一部分。我尝试使用小(40 kb 压缩)字符串,所以执行时间和内存不是问题。两台服务器上的 POST 大小均为 8MB。

有人知道问题出在哪里吗?

【问题讨论】:

  • 我想说的是,听起来第二台服务器对 POST 数据的大小有限制。但是它也不适用于未压缩的字符串——那会更大。
  • 我想更新我的情况....我尝试在 base64 中编码压缩和加密的字符串,现在它可以工作了...但我仍然不明白为什么...因为在另一个服务器它工作正常,无需在 base64 编码中封装。这是一种解决方法,而不是解决方案,因为必须发送的数据变得更大,所以如果有人知道上述问题的原因,我会很高兴。
  • 听起来文件是使用编码 application/x-www-form-urlencoded 而不是 multipart/form-data 上传的,并且二进制文件未正确编码。你能显示你的代码吗?有关如何获取每种编码的信息,请参阅curl_setopt 的 PHP 手册条目。
  • 您需要添加代码如何发送 POST 请求以及如何准备数据。
  • 两台不同服务器上的操作系统是否完全相同?

标签: php string curl compression


【解决方案1】:

wireshark 是必经之路;它会告诉你发生了什么。

【讨论】:

    猜你喜欢
    • 2019-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-27
    • 1970-01-01
    相关资源
    最近更新 更多