Невозможно установить заголовки запроса POST в JSON - PullRequest
0 голосов
/ 06 февраля 2019

Я использую wordpress wp_remote_post, чтобы попытаться установить полезную нагрузку запроса POST для API как JSON.

API отклоняет запрос, поскольку он получает запрос как «Content-Type: application / x-www-form-urlencoded» вместо «Content-Type: application / json»

Я попытался установить тип содержимого как json и запустить json_encode в теле запроса, но безрезультатно.

Я не уверен, что еще можно попробовать.Кто-нибудь может предоставить мне указатель здесь?

Большое спасибо

function call_api_test( $endpoint = '', $args = '' ) {
    $api_url = get_field( 'api_url', 'option' );
    $request = array(
            'grant_type'=> 'client_credentials',
    'client_id'=> get_field( 'api_client_id', 'option' ),
    'client_secret' => get_field( 'api_client_secret', 'option' )
    );
    $token_response = wp_remote_post( $api_url . '/oauth/token', array(
    'headers' => array('Content-Type' => 'application/json; charset=utf8'),
    'body' => json_encode($request),
    'data_format' => 'body',
    'sslverify' => false
));
$token_object = json_decode(wp_remote_retrieve_body($token_response));
$request_url = $api_url . '/' . $endpoint . '?access_token=' . 
$token_object->access_token . '&' . $args;
$api_response = wp_remote_get( $request_url, 'sslverify=0' );
$response = json_decode( wp_remote_retrieve_body( $api_response ) );
return $response;

}

Я ожидаю, что заголовки запроса будут иметь тип содержимого application / json, но вместо этого ониявляются заявкой / x-www-form-urlencoded

...