# File lib/rex/exploitation/opcodedb.rb, line 717
        def request(method, opts = {})
                client  = Rex::Proto::Http::Client.new(server_host, server_port)

                begin
                
                        # Create the CGI parameter list
                        vars = { 'method' => method }
                        
                        opts.each_pair do |k, v|
                                vars[k] = xlate_param(v)
                        end

                        client.set_config('uri_encode_mode' => 'none')
                        
                        # Initialize the request with the POST body.
                        request = client.request_cgi(
                                'method'    => 'POST',
                                'uri'       => server_uri,
                                'vars_post' => vars
                        )

                        # Send the request and grab the response.
                        response = client.send_recv(request, 300)

                        # Non-200 return code?
                        if (response.code != 200)
                                raise RuntimeError, "Invalid response recieved from server."
                        end

                        # Convert the return value to the native type.
                        parse_response(response.body)
                ensure
                        client.close
                end
        end