POST запрос PHP с Curl - PullRequest
       8

POST запрос PHP с Curl

0 голосов
/ 14 марта 2019

Я работаю над проектом WordPress, в котором мне нужно изменить свою тему, чтобы я мог запросить JSON для внешнего API. Я искал в интернете, как это сделать, и многие люди используют CURL.

Я должен сделать запрос POST, но я не знаю, как он работает или как это сделать. Пока у меня работает этот код:

 $url='api.example.com/v1/property/search/';

 $data_array =  array(

            $id_company     =>  '123456',
            $api_token     =>  'abcd_efgh_ijkl_mnop',
    );

        $curl = curl_init();

        curl_setopt($curl, CURLOPT_POST, 1);

        curl_setopt($curl, CURLOPT_POSTFIELDS, $data_array);
        curl_setopt($curl, CURLOPT_URL, $url);
         curl_setopt($curl, CURLOPT_HTTPHEADER, array(
        'APIKEY: 111111111111111111111',
        'Content-Type: application/json'
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);

        $result = curl_exec($curl);
        if(!$result){die("Connection Failure");}
        curl_close($curl);
         echo($result);

Я не знаю, куда именно я должен поместить свою аутентификационную информацию или как методы curl работают в PHP. Ребята, вы можете проверить это и помочь мне решить эту проблему?

1 Ответ

1 голос
/ 14 марта 2019

Существуют некоторые ответы, которые могут вам помочь, такие как этот .

Однако WordPress на самом деле имеет встроенные функции для выполнения запросов GET и POST (которые на самом деле выпадаютя верю назад в cURL?) по имени wp_remote_get() и wp_remote_post().Очевидно, в вашем случае вы захотите использовать wp_remote_post().

<code>$url = 'https://api.example.com/v1/property/search/';

$data_array = array(
    'id_company' => 123456,
    'api_token'  => 'abcde_fgh'
);

$headers = array(
    'APIKEY' => 1111111111,
    'Content-Type' => 'application/json'
);

$response = wp_remote_post( $url, array(
        'method' => 'POST',
        'timeout' => 45,
        'redirection' => 5,
        'httpversion' => '1.0',
        'blocking' => true,
        'headers' => $headers,
        'body' => $data_array,
        'cookies' => array()
    )
);

if( is_wp_error( $response ) ){
    $error_message = $response->get_error_message();
    echo "Something went wrong: $error_message";
} else {
    echo 'Success! Response:<pre>';
        print_r( $response );
    echo '
';}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...