Why is the http request hanging in my python script?
Question: One of my script runs perfectly on an XP system, but the exact script hangs on
a 2003 system. I always use mechanize to send the http request, here's an
example:

    
    
    import socket, mechanize, urllib, urllib2
    
    socket.setdefaulttimeout(60) #### No idea why it's not working
    
    MechBrowser = mechanize.Browser()
    Header = {'User-Agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 GTB7.1 (.NET CLR 3.5.30729)', 'Referer': 'http://www.porn-w.org/ucp.php?mode=login'}
    Request = urllib2.Request("http://google.com", None, Header)
    Response = MechBrowser.open(Request)
    

I don't think there's anything wrong with my code, but each time when it comes
to a certain http POST request to a specific url, it hangs on that 2003
computer (only on that url). What could be the reason of all this and how
should I debug?

By the way, the script runs all right until several hours ago. And no setting
is changed.


Answer: You could use [Fiddler](http://www.fiddler2.com/fiddler2/) or [Wire
Shark](http://www.wireshark.org/) to see what is happening at the HTTP-level.

It is also worth checking out if the machine has been blocked from making
requests to the machine you are trying to access. Use a regular browser (with
your own HTML form), and the HTTP library used by Mechanize and see if you can
manually construct a request. Fiddler can also help you do this.

