Как использовать обработчики перенаправления и ntml вместе в urllib2 - PullRequest
0 голосов
/ 06 июня 2019

Я пытаюсь написать функцию, которая будет выполнять 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 может позаботиться о таких случаях.

...