Mailing List Archive

Q: Authentication with httplib
Hi,

I am using httplib to access a Page on a Server:

.....
h = httplib.HTTP(Server)
h.putrequest('GET', Page)
h.endheaders()
.....

When Server is configured not to require a passwd, I set Server="myServer",
Page="/myPage",
and everything is OK.

My Q regards the situation where there is a need for authentication: Where
should I put the Username+Passwd?

Thanks in advance!

zwikaM
Q: Authentication with httplib [ In reply to ]
On Mon, 23 Aug 1999 11:27:22 +0200, Zwika Moshkowzki <zwi@turboimage.com> wrote:
> Hi,
>
> I am using httplib to access a Page on a Server:
>
> .....
> h = httplib.HTTP(Server)
> h.putrequest('GET', Page)
> h.endheaders()
> .....
>
> When Server is configured not to require a passwd, I set Server="myServer",
> Page="/myPage",
> and everything is OK.
>
> My Q regards the situation where there is a need for authentication: Where
> should I put the Username+Passwd?
>
> Thanks in advance!

The username and password need to go in an "Authorization" header.
Something like this should work:

import base64
import string
import httplib

userid = "foo"
passwd = "bar"

# "Basic" authentication encodes userid:password in base64. Note
# that base64.encodestring adds some extra newlines/carriage-returns
# to the end of the result. string.strip is a simple way to remove
# these characters.
auth = 'Basic ' + string.strip(base64.encodestring(userid + ':' + passwd))

h = httplib.HTTP(Server)
h.putrequest('GET', Page)
h.putheader('Authorization', auth )
h.endheaders()

Hope that helps...

--
C. Laurence Gonsalves "Any sufficiently advanced
clgonsal@kami.com technology is indistinguishable
http://www.cryogen.com/clgonsal/ from magic." -- Arthur C. Clarke