I've been working a bit with the HTTP API and have noticed some things that I feel make using the HTTP API much harder.

http_failure event contains a handle
A http_failure event will be triggered even if the server returns something (a 404 or other error message). It would be much easier to debug what was going wrong if http_failure included a handle to the web page. This would allow one to at least read the status code (and also the content of the page if possible).

The only downside I can see of this is that http.get and http.post wouldn't be able to use this as they need to able to return nil on a failure.

HTTP handle getHeaders()
CC 1.63 allows you to specify custom headers (though it doesn't work for POST requests). It would be great if you could read headers from the server as well (probably returning in the same format). Some HTTP APIs send useful data in the headers instead of the body (such as the GitHub API) and HTTP auth data is also sent in the response headers.