404 аўтэнтыфікацыі HTTP-Basic?

У мяне ёсць наступны сцэнар:

  1. У мяне ёсць ShoutCast-иш-сервер, які абслугоўвае з інфармацыі радыёстанцыі XML.
  2. У мяне ёсць кліент Flash Player, які трэба атрымаць яго.
  3. Flash Player не можа прынесці рэчы праз HTTP-Basic AUTH пры выкарыстанні GET.
  4. Так што я строй Python CGI скрыпту для апрацоўкі аўтэнтыфікацыі і паўторна служыць інфармацыі.

Спадзяюся, што мае сэнс. Па сутнасці, мой сцэнар служыць проксі для рэальных дадзеных шляхам стварэння запыту 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.

Замест гэтага я атрымліваю наступную выснову ў стандартны вывад :

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 або прымае загаловак, а таксама.

Паспрабуйце параўнаць/капіраванне некаторых з загалоўкаў HTTP, адпраўленых вашым браўзэрам з дапамогай Firebug або LiveHTTP загалоўкі ў Firefox або Chrome Паннаў інструментаў. Параўнайце ваш Hexed пароль, каб пацвердзіць яго правільнасць. Затым дадайце іншыя загалоўкі па адным за раз, пакуль вы не выявілі праблему.

2
дададзена
Гэта было менавіта гэта, я дадаў User-Agent і ён працаваў. Дзякуй!
дададзена аўтар Naftuli Kay, крыніца
Так, такая рэч не мае значэння ... але вы будзеце здзіўлены, як часта гэта робіць.
дададзена аўтар Gringo Suave, крыніца