Я пытаюсь написать функцию, которая будет выполнять POST-запрос к веб-серверу, использующему проверку подлинности NTLM.Целевые страницы, которые должна обрабатывать функция, отвечают перенаправлением 302.Похоже, аутентификация NTLM работает хорошо, но перенаправление не работает.
Когда я пытался запустить тот же код на сервере, который не аутентифицируется с NTLM, перенаправление работает хорошо.Таким образом, похоже, что обработчик NTLM не позволяет обработчику перенаправления работать.
def secureRequestFromServer(username, password, domain, url, requestHeaders, data=""):
passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, domain, username, password)
auth_NTLM = HTTPNtlmAuthHandler.HTTPNtlmAuthHandler(passman)
opener = urllib2.build_opener(auth_NTLM, urllib2.HTTPRedirectHandler)
opener.addheaders= requestHeaders
response = opener.open(url, data=data)
return response
При печати кода состояния из возвращенного ответа отображается код состояния 302, в то время как ожидающий должен обработать это, и вывод на код состояния 200 ok.
Тамявляется трудным требованием для использования urllib2 из-за различных ограничений.Я знаю, что запросы или Pycurl может позаботиться о таких случаях.