Запрос Curl на запрос Php Curl

Мне нужна помощь в переписывании этого запроса на php curl:

curl -d '{"text":"Hello,
#param#.","port":[2,3],"param":[{"number":"123456","text_param
":["John"],"user_id":1},{"number":"123478",
"text_param":["Sam"],"user_id":2}]}’ –H "Content-Type:
application/json" http://gateway_ip/api/send_sms

Пока я не добился успеха. вот что я пробовал:

$url = "http://url/api/send_sms";

$params = array(
    'auth' => 'user:pass',
    'port' => 7,
    'text' => utf8_encode('Hello, world!')
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERPWD, "user:pass");
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);

Что я делаю не так?

Почему вы используете http_build_query, когда хотите отправить JSON?

Jonnix 29.10.2018 13:19

@JonStirling Ну, я думаю, это часть, которую я откуда-то скопировал, не могли бы вы уточнить?

Outlaw011 29.10.2018 13:21

Где curl_exec (), а также проверьте curl_error () на наличие ошибок. См. Здесь в этом примере: php.net/manual/de/…

hausl 29.10.2018 13:26

вы ищете: incarnate.github.io/curl-to-php

ZiTAL 29.10.2018 13:30
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать 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 и хотите разрабатывать...
1
4
63
1

Ответы 1

Что-то вроде этого:

<?php
$ch = curl_init();

$json = <<<JSON
{"text":"Hello,
#param#.","port":[2,3],"param":[{"number":"123456","text_param
":["John"],"user_id":1},{"number":"123478",
"text_param":["Sam"],"user_id":2}]}
JSON;

curl_setopt($ch, CURLOPT_URL, "http://gateway_ip/api/send_sms");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
curl_setopt($ch, CURLOPT_POST, 1);

$headers = array();
$headers[] = "Content-Type: application/json";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$result = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close ($ch);

Соберите $ json var самостоятельно, но создайте действительный json с функцией json_encode

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