Pretty close I think. I haven't dug into the doc's too much but based on the sample code below from the link I gave you this is my rough interpretation into lisp.
Note that you are sending a simple http data string not XML so I changed it back to the Http API object. If you want to send XML you will need to have the data as an XML string.
To receive the ResponseText the endpoint on the server needs to handle this request properly and send it back in the correct format.
Also, you need to make sure the endpoint URL is correct, for example, is it handled by a routing library that can give you clean url's like you have or does it need the filetype (such as test.php)?
Basically you are sending a chunk of data as a string that is broken into the header section which describes the payload (text, xml, json, length etc and other meta data as required) and the payload itself. Depending on the library you are using dictates how much of the header details etc are required to be encoded by hand, this is where you need to study the doc's a bit and look at some samples.
Cheers.
(defun MyHTTPRequest
(/ url data http_object
) url "http://localhost:4001/test"
data "username=billythekid&email=thekid@billythekid.com" ;; this data is not XML, it's a plain http type of data string
http_object
(vlax-create-object "WinHTTP.WinHTTPRequest.5.1") ;; so we need to use this, not the XML lib )
(vlax-invoke-method http_object 'SetRequestHeader
"Content-type" "application/x-www-form-urlencoded") ;; not sure about below, maybe API handles string length for you??
;; (vlax-invoke-method http_object 'SetRequestHeader "Content-length" (strlen data))
)
<edit>A quick search put up these results, worth a look through and the first one has a working example in Autolisp, cheers.
https://www.google.com/search?q=autolisp+send+http+request&rlz=1C1CHBF_en-GBAU929AU929&oq=autolisp+send+http+request&aqs=chrome..69i57j33i160.5853j0j4&sourceid=chrome&ie=UTF-8