@yatort

Как сделать API запрос на PHP?

Всем привет

Дали пример того как должен выглядеть php запрос и все никак не дойдет что с ним надо делать, как оборачивать и как отправлять, можете подсказать?

Пример:
HTTPie-cli: http --form POST https://api.saures.ru/login email=demo@saures.ru password=demo -v


HTTP-запрос
POST /login HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Length: 36
Content-Type: application/x-www-form-urlencoded;
charset=utf-8
Host: api.saures.ru
User-Agent: HTTPie/0.9.8
email=demo%40saures.ru&password=demo


HTTP-ответ
HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 98
Content-Type: application/json; charset=utf-8
{
"data": {
"role": 1,
"sid": "b731f212-f5ee-43de-a076-55f6de9fd690"
},
"errors": [],
"status": "ok"
}


все что смог дак это собрать вот такую штуку, она естественно не работает, ошибку говорит
class ApiController extends Controller
{
    public function api1(){
        $url='https://api.saures.ru/login';
        // массив для переменных, которые будут переданы с запросом
        $opts = array(
            'http' => array(
                'method'  => 'POST',  // метод передачи данных
                'header'  => 'Content-type: application/x-www-form-urlencoded;charset=utf-8',  // заголовок
                'email' => 'demo@40saures.ru',
                'password' => 'demo'
            )
        );
        $context  = stream_context_create($opts);  // создаём контекст потока
        $result = file_get_contents($url, false, $context); //отправляем запрос
        dd($result) ;
    }
}
  • Вопрос задан
  • 8084 просмотра
Решения вопроса 1
@NinjaNickName
Web разработчик
Вот к примеру как делать POST запросы с помощью CURL
$data['email'] = 'demo@saures.ru';
$data['password'] = 'demo';

$ch = curl_init('https://api.saures.ru/login');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));

$response= curl_exec($ch);
curl_close($ch);

var_dump($response);


cURL, curl_exec, curl_setopt, curl_close, curl_init

Можно и без cURL:

$url = 'https://api.saures.ru/login'; 
$data['email'] = 'demo@saures.ru';
$data['password'] = 'demo';

$requestParams = http_build_query($data);
		
$context = stream_context_create(array(
	'http' => array(
        'method' => 'POST',
	'header' => 'Content-Type: application/x-www-form-urlencoded' . PHP_EOL,
        'content' => $requestParams,
	),
));
		
$result = file_get_contents($url, false, $context);	
		
var_dump($result);


Если требуется более точный ответ, приведи сообщение ошибки.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
все никак не дойдет что с ним надо делать


открою тебе великую тайну. Если не знаешь что надо делать, то пишешь свои проблемы в адресной строке браузера и нажимаешь ентер
Например в данном случае пишешь Как сделать POST запрос на PHP?
И получаешь примерно квинтиллиард примеров
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы