Задать вопрос
dimas199862
@dimas199862
frontend и backend

Как отправить Post запрос через curl php?

Добрый вечер, имеется код

$header= array(
		'X-KEY:'. $key."\r\n".
		 'X-SIGN:'. $sign."\r\n". 
		 'X-NONCE:'. (strtotime(date("Y-m-d H:i:s")) * 1000)."\r\n");

	$ch = curl_init($url);

	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_HEADER, true);
	curl_setopt($ch, CURLOPT_VERBOSE, true);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
	curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
	curl_setopt($ch, CURLOPT_POST, true);
	curl_setopt($ch, CURLOPT_POSTFIELDS, "пост данные какие-либо");

	$context = curl_exec($ch);


через хедеры идет авторизация в api, а в postfields уже передаются данные запроса. Дело в том, что пост данные не хотят передаваться, то есть передается пустое значение при условии, что хедеры указаны, если я не указываю хедеры, то пост параметры успешно передаются.

Если указываю content-type, то авторизация не проходит, типа подпись не совпадает ('X-SIGN:'. $sign.")
Много вариантов перепробовал, но каждый раз приходил к абсурдному результату, когда проходит авторизация, но пост параметры не передаются, или когда пост параметры передаются, но авторизация не проходит. Такое чувство, что одновременно с авторизацией нельзя отправлять пост запрос, но из документации ясно, что это возможно. Куда копать?

P.S: в документации код на питоне или nodejs, коих я не знаю, а нужен код на php

Документация: ссылка
  • Вопрос задан
  • 1703 просмотра
Подписаться 1 Простой 4 комментария
Пригласить эксперта
Ответы на вопрос 2
@Nujabes37
:DEATH
По-моему ты неправильно передаешь заголовки + Content type лучше все-таки передай, если это json)
https://stackoverflow.com/a/8115709/11073627
Ответ написан
TTATPuOT
@TTATPuOT
https://code.patriotovsky.ru/
В дополнение, можете использовать библиотеку Guzzle - она удобнее намного, чем ковырять cURL.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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