2016-02-18 5 views
0

У меня есть часть кода, которая включает в себя несколько запросов GET. У меня есть простая инструкция if, чтобы проверить код состояния и предоставить auth, если я получу код состояния 401. Как избежать исключения отдельного оператора if для каждой отдельной строки запроса?HTTP-запросы в python с базовой аутентификацией

Я бы хотел, чтобы предоставить учетные данные только один раз, если он защищен, а не предоставлять его с каждым единственным запросом.

EDIT - Добавлен код для ссылки ответ = requests.get (self.uri + '/ v2/приложения')

if (response.status_code == 401): 
     print("It appears that your marathon instance is protected, please enter your username and password") 
     usr = input("Username: ") 
     pwd = getpass.getpass("Password: ") 
     response = requests.get(self.uri + '/v2/apps', auth=(usr,pwd)).json() 
+0

Показать код. Ваш вопрос очень расплывчатый. – ishaan

+0

Я все еще не понимаю, чего вы хотите достичь здесь, но если вы не будете каждый раз избегать ввода имени пользователя и пароля, я предлагаю вам хранить их в переменных вне этой области. Но лучшим решением было бы создать файл конфигурации в '.py' или' .json' и прочитать его там во время вашей инициализации. – ishaan

ответ

0

Во-первых, если вы получаете код состояния 401, это означает, что вы 'не разрешено использовать ресурс.

Во-вторых, у вас есть разные варианты аутентификации клиента один раз. Обычно я рекомендую использовать HTTPS для транспортировки данных. Вы можете использовать:

  • Вы можете использовать печенье с истечением
  • Использование службы маркеров в вашем веб-сервере

Там несколько стандартов аутентификации (например, SAML, OAuth, OpenId и т.д.) уже существующие, постарайтесь не изобретать велосипед.

Смежные вопросы