如果您碰巧使用了CURL传输,那么它有时在发送大于1024个字符的POST请求时会遇到一些小问题。更多信息请点击此处:
https://stackoverflow.com/questions/463144/php-http-post-fails-when-curl-data-1024
修复建议发送一个空的Expect:header。您可以通过修改代码来做到这一点:
$response = wp_remote_post( $url,
array(
\'timeout\' => 60,
\'redirection\' => 5,
\'blocking\' => true,
\'headers\' => array(
\'Content-Type\' => \'application/json\',
\'Expect\' => \'\',
),
\'body\' => \'bla bla (...)\' // fails if larger than 1024
)
);
编辑:更多信息:
某些版本的curl和PHP在正文中输入超过1024个字符时,会首先发送标题,然后发送“Expect:100 continue”标题。然后,接收到此消息的Web服务器应以100 Continue状态响应,以便客户端继续发送正文的其余部分。
如果您使用的是真正的Web服务器,那么它将发送该响应以接收消息的其余部分。一些较旧的Web服务器没有这样做,因此前面的问题中给出了解决方法。
我不知道ngrok是什么,但我敢打赌它的响应不像这里的普通Web服务器。如果服务器没有说要继续发布,curl就会等待它这样做。它最终会超时。