The Challenge is to control the exact form of the HTTP request. The user wants to specify the request URL, HTTP method, request headers, and message body (where applicable, e.g. when using the POST method). The HTTP Client supports both HTTP and HTTPS. Note that the current HTTPS implementation does not perform any SSL validity checking (i.e. is the server cert trusted?; does the cert match the hostname?; has the cert expired?; etc.), and there is currently no mechanism to support two-way SSL (client and server cert authentication).