WordPress cURL 和 wp_remote_post

WordPress cURL and wp_remote_post

所以我的问题是,到目前为止,我在我的一个 wordpress 插件 cURL 中使用 POST 请求,但现在我需要使用 wp_remote_post().

wp_remote_post 看起来很简单,但我无法让它工作。所以我的问题是:有人可以告诉我如何将以下 cURL 转移到 wp_remote_post 吗?

卷曲:

$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_POST, true );
curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode( $fields ));
$result = curl_exec($ch);
curl_close($ch);

我的版本wp_remote_post

$result = wp_remote_post($url, array(
    'method' => 'POST',
    'headers' => $headers,
    'body' => json_encode($fields) )
);

我收到 wp_remote_post 的 401 错误,因为授权无效。

我解决了。出于某种原因,在添加 httpversion 和 sslverify 之后,它现在可以正常工作了。希望这对某人有帮助:

$result = wp_remote_post($url, array(
        'method' => 'POST',
        'headers' => $headers,
        'httpversion' => '1.0',
        'sslverify' => false,
        'body' => json_encode($fields))
    );

之前的答案对我不起作用。 可能是因为它是 2015 年的。

我正在使用我的 WordPress 插件中的 wp_remote_post()。 没有 curl() 个电话。

以下确实有效,请注意一些新增内容:超时、重定向和阻塞。 工作组 5+

$result = wp_remote_post($url, array(
    'method' => 'POST',
    'headers' => $headers,
    'timeout'     => 60, // added
    'redirection' => 5,  // added
    'blocking'    => true, // added
    'httpversion' => '1.0',
    'sslverify' => false,
    'body' => json_encode($fields))
);