To add an XML message, create an XML document, save it to a MEMPTR variable, and then pass it as an OpenEdge.Core.Memptr object. The following example loads XML content from a file:
DEFINE VARIABLE oClient AS IHttpClient NO-UNDO.
DEFINE VARIABLE oURI AS URI NO-UNDO.
DEFINE VARIABLE oRequest AS IHttpRequest NO-UNDO.
DEFINE VARIABLE hXmlDoc AS HANDLE NO-UNDO.
DEFINE VARIABLE mData AS MEMPTR NO-UNDO.
DEFINE VARIABLE oDocument AS CLASS Memptr NO-UNDO.

//Build a request
oURI = URI:Parse("http://httpbin.org/post").
CREATE X-DOCUMENT hXmlDoc.
hXmlDoc:LOAD("FILE", "C:/Samples/sample_xml_doc.xml", FALSE).
hXmlDoc:SAVE('MEMPTR', mData).
oDocument = new Memptr(mData).
oRequest = RequestBuilder:POST(oURI, oDocument):Request.

You can also create the XML document in your ABL program. For example:

DEFINE VARIABLE oClient AS IHttpClient NO-UNDO.
DEFINE VARIABLE oURI AS URI NO-UNDO.
DEFINE VARIABLE oRequest AS IHttpRequest NO-UNDO.
DEFINE VARIABLE hXmlDoc AS HANDLE NO-UNDO.
DEFINE VARIABLE hRootNode AS HANDLE NO-UNDO.
DEFINE VARIABLE hCustomerName AS HANDLE NO-UNDO.
DEFINE VARIABLE hCustomerNameValue AS HANDLE NO-UNDO.
DEFINE VARIABLE hCustomerID AS HANDLE NO-UNDO.
DEFINE VARIABLE hCustomerIDValue AS HANDLE NO-UNDO.
DEFINE VARIABLE mData AS MEMPTR NO-UNDO.
DEFINE VARIABLE oDocument AS CLASS Memptr NO-UNDO.

//Create the XML document
CREATE X-DOCUMENT hXmlDoc.
CREATE X-NODEREF hRootNode.
CREATE X-NODEREF hCustomerName.
CREATE X-NODEREF hCustomerNameValue.
CREATE X-NODEREF hCustomerID.
CREATE X-NODEREF hCustomerIDValue.
hXmlDoc:CREATE-NODE(hRootNode, "Customer", "ELEMENT").
hXmlDoc:CREATE-NODE(hCustomerName, "Name", "ELEMENT").
hXmlDoc:CREATE-NODE(hCustomerNameValue, "", "TEXT").
hXmlDoc:CREATE-NODE(hCustomerID, "ID", "ELEMENT").
hXmlDoc:CREATE-NODE(hCustomerIDValue, "", "TEXT").
hCustomerNameValue:NODE-VALUE = "Excellent Sports Apparel".
hCustomerIDValue:NODE-VALUE = "1".
hCustomerName:APPEND-CHILD(hCustomerNameValue).
hCustomerID:APPEND-CHILD(hCustomerIDValue).
hRootNode:APPEND-CHILD(hCustomerName).
hRootNode:APPEND-CHILD(hCustomerID).
hXmlDoc:APPEND-CHILD(hRootNode).

//Save the XML document to a Memptr
hXmlDoc:SAVE('MEMPTR', mData).
oDocument = new Memptr(mData).

//Build a request
oURI = URI:Parse("http://httpbin.org/post").
oRequest = RequestBuilder:POST(oURI, oDocument):Request.