httplib.HTTPSConnection problem

Terry Kerr terry at
Fri Jul 16 10:06:56 CEST 2004


I have an app that makes a https POST to a remote server that I have no 
control over.  The app runs fine in python 2.1.3 with socket.ssl 
compiled with openssl-0.9.6, however it will not run in python 2.3.3 
compiled with openssl-0.9.7d.  The script below demonstrates the problem.

import httplib
path = "/cmaonline.nsf/ePayForm?OpenForm"
body = 

h = httplib.HTTPSConnection("", 443)
h.request('POST', path, body)
resp = h.getresponse()
f = resp.fp
resp =
print resp

With python 2.1, the server accepts the request correctly and has a 
proper response:

<br>&response_text=GATEWAY BLOCKED=end

However, with python 2.3 I get:

<BODY TEXT="000000">
<H1>Error 500</H1>HTTP Web Server: Invalid POST Request Exception</BODY>

The debuglevel printouts show that python2.1 sends the request and 
headers one at a time, where as python 2.3 sends the request and all the 
headers at once, although the actual data send is identical, so I don't 
see this as the problem.  I actually hacked httplib in my python 2.3 
installion to get _output() to send immediately rather than buffer, so 
that the debug output is identical to the python2.1 output, and that 
gives me a different error:

<HTML><HEAD><TITLE>Error</TITLE></HEAD><BODY><H1>Error 400</H1>Invalid 
request -- HOST header was not sent</BODY></HTML>

So I am suspicious that the debug output is not showing what is actually 
sent? I am really tearing my hair out with this problem because I really 
need this app to work with pyton 2.3.3, and I cannot see what else it is 
doing differently to cause this problem.

Are there any httplib/socket/ssl gurus out there that have any suggestions?


More information about the Python-list mailing list