Hello,
I am testing MARS to consume a XML file in a Post request. I get the following error:
"Internal server error: [EInvalidCast] Invalid class typecast"
My definition for the function is similar to one in the example EKON22:
[POST, Path('recordAge2'),Consumes(TMediaType.APPLICATION_XML), Produces(TMediaType.APPLICATION_JSON)]
function WhatsMyAge2([BodyParam] ARecord: TMyRecord): TJSONObject;
and after watching how MARS creates the xml file (for a GET request) I send in my POST request the following XML (I also specify in Content-Type that is an application/xml):
<DATAPACKET Version="2.0">
<METADATA>
<FIELDS>
<FIELD attrname="Firstname" fieldtype="string" WIDTH="100" />
<FIELD attrname="Lastname" fieldtype="string" WIDTH="100" />
</FIELDS>
<PARAMS CHANGE_LOG="1 0 4 2 0 4 3 0 4 4 0 4" />
</METADATA>
<ROWDATA>
<ROW RowState="4" Firstname="Andrea" Lastname="Magni" />
</ROWDATA>
</DATAPACKET>
I have try with different combinations for the XML file but with no success.
Any help would be appreciated.
Thanks in advance.
PD:It is weird to me that instead of "Consumes(TMediaType.APPLICATION_XML)" if I define"APPLICATION_JSON" it accepts the request (the xml content) but it does not map the content of the xml file to a record but no error arises, also if I define the function with NO "Consumes" section and in the body I specify that I will receive a String it also works, so may be the question is if MARS can parse the XML to a record or how it does. (The next question will be how to parse for multiple Firstname, Lastname).