PHP: как отправить запрос cURL с помощью GET?

Я использую cURL для вызова API, ниже мой код:

$data = array(
            'r'                          =>  'create',
            '_object'                    =>  'Question',
            '_api_key'                   =>  '........',
            '_user_id'                   =>  $creator_id,
            '_subtype_id'                =>  $type_id,
            '_subtopic_id'               =>  $subtopic_id,
            '_title'                     =>  $title,
            '_description'               =>  $description,             
            '_encoded_xml'               =>  $main_xml
        );
     
        $ch = curl_init();

        curl_setopt($ch, CURLOPT_URL,"http://urlhere/v1/resources/objects");
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS,$data);

        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);    
        $server_output = curl_exec($ch);    
        curl_close ($ch);
        print_r($server_output);

Я хочу, чтобы эти параметры были отправлены как запрос GET вместо POST, как я могу это сделать, пожалуйста, посоветуйте

Отвечает ли это на ваш вопрос? GET-запрос Curl с параметром json

Justinas 22.12.2020 16:47

который основан на командах

Sikander Nawaz 22.12.2020 16:49
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
98
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

CURLOPT_POSTFIELDS предназначен для тела (полезной нагрузки) запроса POST. Для запросов GET полезная нагрузка является частью URL-адреса.

Вам просто нужно создать URL-адрес с аргументами, которые вам нужно отправить (если они есть), и удалить другие параметры для cURL.


$data = array(
            'r'                          =>  'create',
            '_object'                    =>  'Question',
            '_api_key'                   =>  '........',
            '_user_id'                   =>  $creator_id,
            '_subtype_id'                =>  $type_id,
            '_subtopic_id'               =>  $subtopic_id,
            '_title'                     =>  $title,
            '_description'               =>  $description,             
            '_encoded_xml'               =>  $main_xml
        );


        $send_data = http_build_query($data);
     
        $ch = curl_init();

        curl_setopt($ch, CURLOPT_URL,"http://urlhere/v1/resources/objects?" . $send_data);
        // curl_setopt($ch, CURLOPT_POST, 1);
        // curl_setopt($ch, CURLOPT_POSTFIELDS,$data);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);    
        
        $server_output = curl_exec($ch);    
        curl_close ($ch);
        print_r($server_output);

я отправляю массив $data на сервер как запрос на получение, поэтому я должен добавить ?iitem= itemval , как это в URL?

Sikander Nawaz 22.12.2020 16:57

Ах да... добавьте что-то вроде этого... $send_data = http_build_query($data); добавив его в свой URL, я обновил код в ответе.

SH_ 22.12.2020 17:05

Другие вопросы по теме