2010-11-05 2 views
0

Приложение My C необходимо подключиться к серверу Http и получить ответ, и у меня возникли проблемы с подключением к серверу, который не работает на порту 80.Libcurl: не удается подключиться к серверу разработки Django

Я использую сервер разработки Django на порту 8000 вместо Apache в моей среде разработки. Но я просто проверил подключение к моей странице Django в Apache на порту 80, и libcurl смог подключиться. Я могу подключиться к порту 8000 в моем браузере, но libcurl не может.

Я пробовал этот URL: http://192.168.1.186:8000/mypage/ и http://192.168.1.186/mypage/, а затем установил CURLOPT_PORT на 8000, но ни один из них не работал.

Специфическая ошибка

libcurl error: 7 
libcurl error: couldn't connect to server 

Сервер работает под управлением CentOS 5.5, и у меня есть порт 8000 переправились через IPTables и SELinux отключен.

Я просто включу соответствующий код.

char* url = "http://192.168.1.186:8000/mypage/"; 
CURL* curl = curl_easy_init(); 
curl_easy_setopt(curl, CURLOPT_URL, url); 
curl_easy_setopt(curl, CURLOPT_TIMEOUT, 10); 
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, wait_for_response); 
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response); 
curl_easy_perform(curl); 

Также использование зависания командной строки также не работает.
curl http://192.168.1.186:8000/mypage/

Edit: Я обнаружил, что если я переключаюсь Apache на порт 8000 завиток работает хорошо, так что есть что-то на сервере Джанго, который игнорирует мои просьбы.

+0

Можете ли вы: «telnet 192.168.1.186 8000'? Если это не удается, это проблема с сетью/брандмауэром/конфигурацией, а не с проблемой программирования/завитки. – nos

+0

Я получаю соединение отказано. Я обновил вопрос, потому что обнаружил, что curl отлично работает, когда Apache находится на 8000. Таким образом, сервер Django просто игнорирует мои запросы на завивки. – jonescb

ответ

4

Я понял.

Я использовал эту команду, чтобы запустить сервер
python manage.py runserver 192.168.1.186:8000

Но по какой-то причине вы должны использовать 0.0.0.0:8000 вместо этого.
python manage.py runserver 0.0.0.0:8000

Я не знаю, почему это работает, но это так.

+0

Не могу поверить, что это сработало – tjb

Смежные вопросы