Я использую 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
, как я могу это сделать, пожалуйста, посоветуйте
который основан на командах
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?
Ах да... добавьте что-то вроде этого... $send_data = http_build_query($data);
добавив его в свой URL, я обновил код в ответе.
Отвечает ли это на ваш вопрос? GET-запрос Curl с параметром json