将Curl转换为wp_remote_post bitaps api

时间:2017-12-26 09:13:18

标签: php wordpress curl

我必须将此卷曲转换为wp_remote_post。

 function post_api($url, $postfields) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    $result = curl_exec($ch);
    return $result;
  }
$postfields = json_encode(array('redeemcode'=> $redeemcode));
$data = post_api("https://bitaps.com/api/get/redeemcode/info", $postfields);

我试过这个,但得到错误...... Jason解码错误。

    $data = wp_remote_post( "https://bitaps.com/api/get/redeemcode/info", array(
            'method' => 'POST',
            'timeout' => 45,
            'redirection' => 5,
            'httpversion' => '1.0',
            'blocking' => true,
            'headers' => array(),
            'body' => $postfields,
            'cookies' => array()
            )
        );

3 个答案:

答案 0 :(得分:1)

卷曲响应为JSON数据& wp_remote_post()给出数组格式化数据。 所以使用误差函数来识别错误或积极响应&如果收到错误,则使用wp_remote_retrieve_body()。这可能会奏效。

实施例



if( is_wp_error( $data ) ) {
	return false;
}

$body = wp_remote_retrieve_body( $data );

$data = json_decode( $body );




答案 1 :(得分:0)

您必须使用正确的值传递$ redeemcode。

您可以使用以下示例:

 $redeemcode = "BTCuoC8AGRbHjEss347c4KoQrdzqyJwDSdAxbjAoC4tyAbxTAhBuq";

<强>结果

[body] => {"balance": 0, "paid_out": 0, "pending_balance": 0, "address": "17BcAXNkpVKCrAAVKDr4CXDHLhXv9gTVY7"}

答案 2 :(得分:0)

所以我现在得到的答案是我用来帮助其他人的所有代码。

         function post_api($url, $postfields) {
                $data = wp_remote_post( $url, array(
                    'method' => 'POST',
                    'timeout' => 45,
                    'redirection' => 5,
                    'httpversion' => '1.0',
                    'blocking' => true,
                    'headers' => array(),
                    'body' => $postfields,
                    'cookies' => array()
                    )
                );
                    if( is_wp_error( $data ) ) {
                        return false;
                    }

            $body = wp_remote_retrieve_body( $data );   

            return $body;
        }
        $postfields = json_encode(array('redeemcode'=> $redeemcode));
        $data = post_api("https://bitaps.com/api/get/redeemcode/info", $postfields);