Python — Невозможно получить доступ к веб-приложению Flask из php curl

У меня есть приложение Flask с основной функцией, где я выставил app.run () для публичного ip, чтобы он был доступен с внешнего сервера; [используя Flask — внешне видимый сервер разработки ]

@app.route('/')
def hello_world():
return 'Hello World!'

if __name__ == '__main__':
app.run(host = '0.0.0.0', port = 8080)

Запрос curl, который я написал в своем php-коде:

$signed_url = "http://my-ip-address:8080/";
$ch = curl_init($signed_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 0);
$data= curl_exec($ch);
echo $data;

Я могу сделать запрос curl:

curl http://my-ip-address:8080/

из командной строки. Однако, когда запрос curl встроен в мой PHP-код, он выдает ошибку «Отказано в соединении».

Пожалуйста, помогите!

0

Решение

Если код PHP находится на другом сервере, но ваш запрос cURL для командной строки находится на том же сервере, то вы не сравниваете яблоки с яблоками.

Две вещи, которые могут быть неправильными:

  1. Ваш сервер Flask имеет брандмауэр, который не допускает внешних подключений.
  2. Вы подключаетесь с использованием IP-адреса частной сети, а не общедоступного IP-адреса.

Пока ваш PHP-код выглядит правильно, поэтому я бы немного сузил проблему. Игнорируйте этот код PHP и попробуйте подключиться с помощью cURL в командной строке с того же сервера, на котором вы выполняете свой код PHP.

1

Другие решения

попробуйте установить свой порт с помощью параметров curl:

curl_setopt($ch, CURLOPT_PORT, 8080);

поэтому ваш подписанный URL будет:

$signed_url = "http://my-ip-address";
0

По вопросам рекламы [email protected]