Я пытаюсь подключиться к локальному запущенному серверу Restlet из python, но соединение бесконечно зависает (или истекает время ожидания, если я установил тайм-аут).
import urllib2
handle = urllib2.urlopen("http://localhost:8182/contact/123") # hangs
Если я использую curl
из оболочки, чтобы открыть вышеуказанный URL-адрес, результаты возвращаются быстро. Если я использую urllib2 для открытия другой локальной службы (например, веб-сервера Django на порту 8000), urllib2 работает нормально.
Я попытался отключить брандмауэр (я делаю это в OS X). Я попытался изменить локальный хост на 127.0.0.1. Журналы из Restlet для соединения curl и urllib2 выглядят одинаково, за исключением пользовательского агента.
Мой обходной путь состоял бы в том, чтобы просто вызвать curl
через subprocess
, но я бы предпочел понять, почему это не удается.
Вот как выглядит мой ресурс Restlet:
public class ContactResource extends ServerResource {
@Get
public String represent() throws Exception {
return "<contact details>";
}
//....
}
Дайте мне знать, если вам нужна дополнительная информация/код
urllib2.urlopen("...", timeout=1)
? - person Seth   schedule 30.11.2011