Это мой первый пост с этим аккаунтом, и я всю прошлую неделю боролся за то, чтобы это заработало, поэтому я надеюсь, что кто-то может помочь мне заставить его работать.
Я пытаюсь получить некоторые данные из https://api.connect2field.com/, но он отклоняет все мои попытки аутентификации из python (но не из браузера).
Код, который я использую
import urllib.request as url
import urllib.error as urlerror
urlp = 'https://api.connect2field.com/api/Login.aspx'
# Create an OpenerDirector with support for Basic HTTP Authentication...
auth_handler = url.HTTPBasicAuthHandler()
auth_handler.add_password(realm='Connect2Field API',
uri=urlp,
user='*****',
passwd='*****')
opener = url.build_opener(auth_handler)
# ...and install it globally so it can be used with urlopen.
url.install_opener(opener)
try:
f = url.urlopen(urlp)
print (f.read())
except urlerror.HTTPError as e:
if hasattr(e, 'code'):
if e.code != 401:
print ('We got another error')
print (e.code)
else:
print (e.headers)
Я почти уверен, что код все делает правильно, что заставляет меня думать, что, возможно, есть еще один шаг аутентификации, который требует ASP.net. У кого-нибудь есть опыт работы с протоколом аутентификации ASP.Net?
Я буду проверять этот пост в течение дня, поэтому я могу опубликовать больше информации, если потребуется.
Редактировать: Я также пытался запустить мой скрипт на обычном http-сервере аутентификации, работающем дома, и он аутентифицировался, поэтому я уверен, что запрос настроен правильно.