Как исправить «Не удалось подключиться к 127.0.0.1:5000; Соединение отказано» из PHP во Flask - PullRequest
0 голосов
/ 30 октября 2019

Надеюсь, кто-то из вас сможет мне помочь. До этой ошибки сервер работал без каких-либо проблем, но кто-то в моей команде внес некоторые изменения, которые приводили к сбою веб-страницы.

У меня есть сервер Flask, работающий на 127.0.0.1:5000, я запустил http://127.0.0.1:5000/url?param1=val1&param2=val2 на centos shell, и я получил ответ json от Flask.

Я также запустил файл PHP со следующим кодом (sudo php test.php), получая ответ json от Flask:

<?php
        // Get cURL resource
        $curl = curl_init();

        // Set some options - we are passing in a useragent too here
        curl_setopt_array($curl, [
            CURLOPT_RETURNTRANSFER => 1,
            CURLOPT_URL => 'http://127.0.0.1:5000/url?param1=val1&param2=val2',
        ]);

        // Send the request & save response to $resp
        $resp = curl_exec($curl);

        // Close request to clear up some resources
        curl_close($curl);

        echo ($resp);
?>

Когда я попытался отправить запрос GET из html-формы, я получил следующее сообщение от curl_error($curl)

Не удалось подключиться к 127.0.0.1:5000;Отказ в соединении

Я пытался отправить запрос через CURL и только PHP без HTML-формы, как я упоминал ранее, и он работает без какой-либо конфигурации порта.

<?php
session_start();

if (!empty($_POST['name1']) && !empty($_POST['name2']))
{
    // Get cURL resource
    $curl = curl_init();

    // Set some options - we are passing in a useragent too here
    curl_setopt_array($curl, [
            CURLOPT_RETURNTRANSFER => 1,
            CURLOPT_URL => 'http://127.0.0.1:5000/url?param1='. $_POST['name1'] . '&param2='.$_POST['name2'],
    ]);

    // Send the request & save response to $resp
    $resp = curl_exec($curl);

    if ($resp == false){
        echo(curl_error($curl));
    } 
    else{
        $_SESSION['checkin'] = $resp;   
        header("Location: url.php");
    }

    // Close request to clear up some resources    
    curl_close($curl);
}

?>

Я хочу получить ответ json{"ключевые данные"}. Если я отправил curl в оболочке или только код PHP, он сработает, но если я вызову код из формы HTML, он вернет сообщение в браузере.

Не удалось подключиться к localhost: 5000;Отказано в соединении

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...