Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Python - HTTP auth

Sivun loppuun

janijohannes [30.05.2010 00:29:44]

#

Yritin saada tehtyä Python-skriptin, joka avaa yhteyden ja päivittää dy.fi-osoitteen. Jostain syystä kirjautuminen ei onnistu. Tässä olisi koodi:

import urllib2
auth_handler = urllib2.HTTPBasicAuthHandler()
auth_handler.add_password(realm='DY-Update',
                          uri='http://localhost/dyfi-updater.py',
                          user='e.mail@mailer.com',
                          passwd='password')
opener = urllib2.build_opener(auth_handler)
urllib2.install_opener(opener)
urllib2.urlopen('http://www.dy.fi/nic/update?hostname=host.dy.fi')

Eli aika lailla kopio Pythonin dokumentaatiosta. Tunnukset ovat toki oikein.

janijohannes [02.06.2010 20:14:53]

#

Kukaanko ei tiedä?

Chiman [02.06.2010 20:28:12]

#

"ei onnistu" on aina heikosti ilmaistu. Miten ei onnistu? Tuleeko jokin virheilmoitus?

janijohannes [03.06.2010 13:19:06]

#

Juu, tulee siis 401, kirjautuminen epäonnistui.

Macro [07.06.2010 13:22:45]

#

Pitäisiköhän kohdassa "uri" olla http-osoite dy.fi-sivustolle? Eikös tuo tarkoita sitä, että täytetään tunnukset omalle palvelimelle, kun niitä kysytään?

janijohannes [11.06.2010 12:31:59]

#

Ja tähän iodottelisin edelleen vastausta. Tuo Macron neuvo ei ainakaan toiminut.

Macro [11.06.2010 13:04:42]

#

Sinun pitää avata sivu ennen tunnuksien antamista.

janijohannes [11.06.2010 13:17:20]

#

Juuh, tottakai hostikoneella. Tuo ei vaan vieläkään hyväksy kirjautumista. Veikkaan, että AuthHandler jäi asentamatta, mutta en muista, että miten se tehdään.

Macro [11.06.2010 13:20:52]

#

Kannattaa lukea Pythonin urllib2 dokumentaatiota.

Lisäksi esimerkkejä. http://docs.python.org/library/urllib2.html­#examples

Voit käyttää myös CURLia tai WGETiä:

dy.fi kirjoitti:

curl -D - --user useraccount:password http://www.dy.fi/nic/update?hostname=hostname.dy.fi

wget -q -O - --http-user=username@dom.ai.n --http-passwd=p4ssw0rd http://www.dy.fi/nic/update?hostname=asdfg.dy.fi

Macro [11.06.2010 17:14:49]

#

Tein sinulle myös koodin.

import urllib.request
import base64

encodedstring = base64.b64encode(b"tunnus:salasana")[:-1]
auth = "Basic " + str(encodedstring)

urllib.request.Request("http://www.dy.fi/nic/update?hostname=host.dy.fi", None, {"Authorization": auth })

Käytin vähän eri funktioita päivitykseen, mutta tästä tuli yksinkertaisempi.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta