За последние 24 часа нас посетили 22747 программистов и 1261 робот. Сейчас ищут 759 программистов ...

curl не работает

Тема в разделе "PHP для новичков", создана пользователем schwan, 4 июн 2020.

  1. schwan

    schwan Новичок

    С нами с:
    4 июн 2020
    Сообщения:
    2
    Симпатии:
    0
    в браузере вывываю php файл:

    PHP:
    1. <?php
    2. if( $curl = curl_init() ) {
    3.   curl_setopt($curl,CURLOPT_URL,'http://localhost:8000/api.php');
    4.   curl_setopt($curl,CURLOPT_TIMEOUT , 10);
    5.   curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
    6.   curl_setopt($curl, CURLOPT_POST, true);
    7.   curl_setopt($curl, CURLOPT_POSTFIELDS, "a=4");
    8.   $out = curl_exec($curl);
    9.   echo $out;
    10.   curl_close($curl);}
    11. ?>
    он обращается к api.php

    PHP:
    1. <?php
    2. $a = 0;
    3. if (isset($_POST['a'])) $a = strip_tags($_POST['a']);
    4. echo $a * 2;
    5. ?>
    Т.е. идет POST запрос к api.php с одним параметром.
    По идее должно вернутся значение умноженное на 2, но отваливается по таймауту.
    Если убрать таймаут то просто висит. Причем весь встроенный в PHP 7.4.5 сервер.
    Что делаю не так?
     
    #1 schwan, 4 июн 2020
    Последнее редактирование: 4 июн 2020
  2. Emilien

    Emilien Активный пользователь

    С нами с:
    30 июн 2016
    Сообщения:
    246
    Симпатии:
    156
    https://www.php.net/manual/ru/features.commandline.webserver.php
    Встроенный веб-сервер выполняет только один однопоточный процесс, поэтому приложения PHP будут останавливаться, если запрос заблокирован.
    C версии 7.4 добавили возможность указать количество требуемых воркеров в переменной окружения PHP_CLI_SERVER_WORKERS
     
  3. schwan

    schwan Новичок

    С нами с:
    4 июн 2020
    Сообщения:
    2
    Симпатии:
    0
    Это я понял. Но почему процесс висит?
    Это же простая отправка Post через Curl в PHP.
    --- Добавлено ---
    Один ньюанс только - это Windows 10.