404 по HTTP-базовой аутентификации?

У меня есть следующий сценарий:

  1. У меня есть сервер ShoutCast-ish, который обслуживает информацию о радиостанции XML.
  2. У меня есть клиент Flash Player, который должен его получить.
  3. Flash Player не может извлекать вещи через HTTP-Basic auth при использовании GET.
  4. Итак, я создаю CGI-скрипт Python для обработки аутентификации и повторной передачи информации.

Надеюсь, это имеет смысл. По сути, мой скрипт служит прокси-сервером для реальных данных, создавая HTTP-запрос, извлекает данные и обслуживает его по запросу.

Вот мой Python

#!/usr/bin/python
import base64, cgitb, sys, urllib2

cgitb.enable()

print "Content-Type: text/xml"
print

username = "username"
password = "password"
url = "http://s6.voscast.com:7158/admin.cgi?mode=viewxml"

auth = base64.encodestring('%s:%s' % (username, password))[:-1]
request = urllib2.Request(url)
request.add_header("Authorization", "Basic %s" % auth)

try:
    handle = urllib2.urlopen(request)
except IOError, e:
    print "Something Failed."
    sys.exit(1)

print handle.read()

Довольно просто, правда? К сожалению, он не работает. Если я посещаю веб-сайт в браузере и вводю те же имя пользователя и пароль, он работает; Я вижу дерево XML.

Вместо этого я получаю следующий вывод в stdout :

Content-Type: text/xml

ICY 404 Resource Not Found
icy-notice1:
SHOUTcast Distributed Network Audio Server/Linux v1.9.8
icy-notice2:The resource requested was not found

Что я делаю не так? Учитывая тот же URL-адрес, имя пользователя и пароль в браузере, все работает. Что я пропустил?

1

1 ответы

Для этого может потребоваться также заголовок User-Agent или Accepts.

Попробуйте сравнить/скопировать некоторые заголовки http, отправленные вашим браузером, используя Firebug или LiveHTTP Headers в Firefox или инструменты Chrome dev. Сравните ваш пароль, чтобы подтвердить его правильность. Затем добавляйте другие заголовки по одному, пока не обнаружите проблему.

2
добавлено
Именно так, я добавил пользовательский агент , и он сработал. Благодаря!
добавлено автор Naftuli Kay, источник
Правильно, такая вещь не имеет значения ... но вы будете удивлены, как часто это происходит.
добавлено автор Gringo Suave, источник
Python
Python
7 654 участник(ов)

Уютный чат для профессионалов, занимающихся поиском питоньих мудростей. Как не получить бан: https://t.me/ru_python/577926

Python beginners
Python beginners
4 449 участник(ов)

Вопросы про Python для чайников. Cпам и троллинг неприемлем. Не злоупотребляйте стикерами. Частозадаваемые вопросы: https://github.com/ru-python-beginners/faq/blob/master/README.md Статистика тут: https://grstats.me/chat/x4qym2k5uvfkr3al6at7

pro.python
pro.python
1 090 участник(ов)

Сообщество разработчиков под Python Создатель: @rodgelius

Rude Python
Rude Python
971 участник(ов)

Python без „девочек”, здесь матерятся и унижают Django. Not gay friendly. Правила: t.me/rudepython/114107 @rudepython | t.me/rudepython

rupython
rupython
509 участник(ов)

Группа создана с целью оперативного получения ответов на возникающие вопросы по разработке на яп python, смежные темы, а также человеческого общения. Приветствую!

Python-programming
Python-programming
266 участник(ов)

Чат группы вконтакте https://vk.com/python_community