[update] 支持MailChimp使用的压缩方法,had been implemented in WP core in version 3.3.
本期came up again 这一次,我能够复制并解决它。
WordPress声明,is需要具有高优先级的泄密数据,但由于某些原因,它无法夸大某些响应-它们都无法被任何一方识别gzinflate()
或WP_Http_Encoding::compatible_gzinflate()
.
在我的具体案例中,似乎在开始时有两个额外的字节导致了这种情况。从中计算出comments to gzinflate()
docs 这也是WP_Http_Encoding::compatible_gzinflate()
, 但显然,这一功能并不完美。
粗略的快速修复程序,检查响应是否包含JSON数据,并尝试纠正压缩问题,否则:
add_filter(\'http_response\', \'mailchimp_http_response_inflate_fix\', 10, 3);
function mailchimp_http_response_inflate_fix($response, $args, $url) {
if( false === strpos($url, \'sts.mailchimp.com\') )
return $response;
$json = json_decode($response[\'body\']);
if( is_null($json) ) {
$inflate = @gzinflate(substr($response[\'body\'], 2));
if( false !== $inflate )
$response[\'body\'] = $inflate;
}
return $response;
}