http access produces 503

Piet van Oostrum piet at cs.uu.nl
Wed Aug 5 16:14:04 EDT 2009


>>>>> Rog <af1ing at seznam.cz> (R) wrote:

>R> I am porting a simple code from Perl, the website asks for usr/pwd and
>R> the server's side Perl script makes atemp ftp dir for file upload.

>R> The original Perl script connects okay, does its job. The same URL
>R> stuffed into FF3 performs the same way.
>R> My Python script I am sweating out for past four days (noob!) gets
>R> consistently "503", even with user agen set to: Mozilla/5.0 (Windows;
>R> U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11.
>R> Snippets of relevant code below.

>R> Please, help me understand how this same code lets me log in into my
>R> router usr/pwd running .asp, but this !@#$% perl script returns to me
>R> w/503 c*ap?
>R> Thank you.

Which perl script?

>R> Do I need to set any proxy? The server is on intranet and the FF3 is
>R> set to proxy. The original Perl script did not use any proxy setting.

>R> <pre>

>R> url = http://example.com/ftpsetup.pl?username=boofa&nodeid=42
>R> #########################################################
>R> # create a password manager
>R>     password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
>R> # Add the username and password.
>R> # If we knew the realm, we could use it instead of ``None``.
>R>     password_mgr.add_password(None, url, uid, pcode)
>R>     handler = urllib2.HTTPBasicAuthHandler(password_mgr)
>R>     class Mopener(URLopener): version = "Mozilla/5.0 (Windows; U;
>R> Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11"

>R>     opener = Mopener()

>R> # create "opener" (OpenerDirector instance)

>R>     opener = urllib2.build_opener(handler)
>R>     opener.addheaders = [('User-agent', 'Mozilla/5.0 (Windows; U;
>R> Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11')]

>R>     opener.version = "Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:
>R> 1.8.1.11) Gecko/20071127 Firefox/2.0.0.11"

>R>     print opener.version
>R> # timeout in seconds
>R>     timeout = 10
>R>     socket.setdefaulttimeout(timeout)

>R> # Install the opener all calls to urllib2.urlopen use our opener.
>R>     urllib2.install_opener(opener)

>R>     try:
>R>         response = opener.open(url)
>R>         # "http://www.useragent.org/" tested okay!!!
>R>         print"ok = 1"
>R>     except:
>R>         print "error 1"
>R> #####################################################################################

This code is a mess. The indentation is wrong so it can't be your real
code. Imports are missing. And there is a lot of garbage that doen't do
anything. E.g. The Mopener business is not used. install_opener is not
used.

Please make a minimal examples and check if that fails to. Like:

import urllib2
import socket

url = 'http://example.com/ftpsetup.pl?username=boofa&nodeid=42'
uid = ...
pcode = ...

# create a password manager
password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
# Add the username and password.
# If we knew the realm, we could use it instead of ``None``.
password_mgr.add_password(None, url, uid, pcode)
handler = urllib2.HTTPBasicAuthHandler(password_mgr)

# create "opener" (OpenerDirector instance)
opener = urllib2.build_opener(handler)

# timeout in seconds
timeout = 10
socket.setdefaulttimeout(timeout)

try:
    response = opener.open(url)
    print response.read()
    print"ok = 1"
except:
    print "error 1"



>R> output from the above:

>R> Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/
>R> 20071127 Firefox/2.0.0.11
>R> error 1
>R> Error code:  503
>R> ('Service Unavailable', 'The server cannot process the request due to
>R> a high load')

That suggests that there is a real problem in the server. Or that your
url causes some problems.

-- 
Piet van Oostrum <piet at cs.uu.nl>
URL: http://pietvanoostrum.com [PGP 8DAE142BE17999C4]
Private email: piet at vanoostrum.org



More information about the Python-list mailing list