これはphpで動作します。
$postdata = http_build_query(
array(
'api' => get_option('API_key'),
'gw' => '1'
)
);
$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $postdata
)
);
$context = stream_context_create($opts);
$api_response = file_get_contents('https://myurl.com/api', false, $context);
ただし、これはWordpressでは機能しません。
$args = array(
'method' => 'POST',
'headers' => 'Content-type: application/x-www-form-urlencoded',
'sslverify' => false,
'api' => get_option('API_key'),
'gw' => '1'
);
$api_response = wp_remote_post('https://myurl.com/api', $args);
それは基本的に同じことをするべきですが、ワードプレスはどういうわけかPOSTデータを送信しません。データをサーバーに送信し、HTML応答を$api_response
として取得します。
リクエストパラメータを間違って渡しています。
Codexページ を見てください。あなたはそこにそのような例を見つけることができます:
$response = wp_remote_post( $url, array( 'method' => 'POST', 'timeout' => 45, 'redirection' => 5, 'httpversion' => '1.0', 'blocking' => true, 'headers' => array(), 'body' => array( 'username' => 'bob', 'password' => '1234xyz' ), 'cookies' => array() ) );
だからあなたの場合それはこのように見えるはずです:
$args = array(
'method' => 'POST',
'headers' => array(
'Content-type: application/x-www-form-urlencoded'
),
'sslverify' => false,
'body' => array(
'api' => get_option('API_key'),
'gw' => '1'
)
);
$api_response = wp_remote_post('https://myurl.com/api', $args);