Как отправить HTTP запрос методом POST на URL через PHP?

Как отправить HTTP запрос методом POST на URL через PHP?
  • Вопрос задан
  • 173121 просмотр
Решения вопроса 1
Tyranron
@Tyranron
Действительно, за время, которое потратили на создание вопроса, Вы могли без проблем найти интересующую Вас информацию в любом поисковике.

Но раз вопрос уже задан, то должен быть и ответ(ы).
Собственно, @OnYourLips дал ссылку на хороший фреймворк, но если нет смысла тащить в проект/скрипт целый фреймворк ради одного запроса, к примеру, то логичнее воспользоваться упомянутым CURL. В Вашем случае сценарий использования CURL будет выглядеть примерно следующим образом:
$myCurl = curl_init();
curl_setopt_array($myCurl, array(
    CURLOPT_URL => 'http://target.site.com/form.php',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => http_build_query(array(/*здесь массив параметров запроса*/))
));
$response = curl_exec($myCurl);
curl_close($myCurl);

echo "Ответ на Ваш запрос: ".$response;

Если надо передать при этом ещё и файлы, или обратиться по https, или ещё чего Вам понадобится - добро пожаловать в документацию:
http://php.net/manual/ru/book.curl.php
Советую обратиться к документации в любом случае, дабы ознакомиться со всеми возможными нюансами, а также понять и выбрать то, что конкретно Вам потребуется для решения Вашей задачи.
Ответ написан
Пригласить эксперта
Ответы на вопрос 6
GeneMoss
@GeneMoss
void
$url = 'http://localhost/post.php';
$params = array(
    'param1' => '123', // в http://localhost/post.php это будет $_POST['param1'] == '123'
    'param2' => 'abc', // в http://localhost/post.php это будет $_POST['param2'] == 'abc'
);
$result = file_get_contents($url, false, stream_context_create(array(
    'http' => array(
        'method'  => 'POST',
        'header'  => 'Content-type: application/x-www-form-urlencoded',
        'content' => http_build_query($params)
    )
)));

echo $result;
Ответ написан
taliban
@taliban
php программист
Это капец, все что угодно перечислили, лишь не встроенную функцию
http://php.net/manual/ru/function.file-get-contents.php#108309
Ответ написан
OnYourLips
@OnYourLips
https://github.com/guzzle/guzzle

Чувствую, что вам сейчас всякие CURL начнут советовать. Не слушайте их.
Ответ написан
Можно отправить POST-запрос используя контексты потоковых операций PHP. На хабре есть статья на эту тему.
Ответ написан
KEKSOV
@KEKSOV
Какой-то народ неадекватный пошел, наверно, новый дизайн так влияет...
Ответ на Ваш вопрос. От себя добавлю ещё один вариант решения pecl_http - HttpRequest.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы