Libcurl: не удается подключиться к серверу разработки Django - PullRequest
0 голосов
/ 05 ноября 2010

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

Я использую 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 также не работает.
curl <a href="http://192.168.1.186:8000/mypage/" rel="nofollow">http://192.168.1.186:8000/mypage/</a>

Edit: я обнаружил, что если я переключаю Apache на порт 8000, curl работает нормально,поэтому на сервере Django есть что-то, что игнорирует мои запросы.

1 Ответ

4 голосов
/ 05 ноября 2010

Я понял это.

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

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

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

...