ПОЛУЧИТЬ HTTP 1.1 ошибку 400 с фоновой задачей PHP - PullRequest
1 голос
/ 08 июля 2019

У меня создается запрос GET для запуска фоновой задачи в PHP.

Код работает на моей машине разработки, но не работает в производственной среде.

GET http://localhost:8080/hms/controllers/background/bday.php HTTP 1.1 Host: localhost Connection: Close HTTP/1.1 

При отображенииecho fgets ($ socketcon, 128);Я получаю ошибку ниже.

400 Bad Request Date: Mon, 08 Jul 2019 05:47:01 GMT Server: Apache/2.4.33 
(Win32) OpenSSL/1.0.2o PHP/5.6.36 Vary: accept-language,accept-charset 
Accept-Ranges: bytes Connection: close Content-Type: text/html; charset=utf- 
8 Content-Language: en Expires: Mon, 08 Jul 2019 05:47:01 GMT

Мой код

    $host = 'localhost';
    $remote_house = 'http://localhost:'.APACHEPORT.'/hms/controllers/background';

    $socketcon = fsockopen($host, APACHEPORT);
    if($socketcon) {   
        $socketdata = "GET $remote_house/".$scriptName." HTTP 1.1\r\nHost: $host\r\nConnection: Close\r\n\r\n";  
        fwrite($socketcon, $socketdata); 
        fclose($socketcon);
    }

1 Ответ

0 голосов
/ 08 июля 2019

Удалось сделать то же самое с CURL с таймаутом в 1 миллисекунду, что фактически делает его работающим в фоновом режиме.

$curl = curl_init();
    curl_setopt_array($curl, array(
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_URL => $remote_house.$scriptName,
        CURLOPT_USERAGENT => 'User Agent X',
        CURLOPT_TIMEOUT_MS => 1
    ));
    $resp = curl_exec($curl);
    curl_close($curl);
...