Delphi SOAPtoObject and ObjectToSoap & Header Manipulation
$250-750 AUD
완료함
게시됨 약 6년 전
$250-750 AUD
제출할때 지불됩니다
Hi,
I have a small Delphi Project (Written in XE 10.1 Berlin, but can go to earlier versions of Delphi if required). I have the application communication OK, however I need someone with more SOAP expertise than myself to assist in two areas.
1) Use of ObjectToSOAP and SOAPToObject
I need the object returned to be saved to disk in a file (preferably in XML via a TXMLDocument component), and then the ability to load that file back into a SOAP object at a later date.
(Basically I want to be able to emulate re-loading the document from the website so I can 'work on' the object without actually having to re-initiate another connection and download).
I attempted the following code, but it does not work:
_Resp := (RIO1 as [login to view URL]).GenericCodeSet(Param1, Param2, Param3);
[login to view URL] := False;
[login to view URL];
[login to view URL] := true;
ARootNode := [login to view URL]('MyRemotable');
NewNode := [login to view URL](ARootNode, ARootNode, [login to view URL], '', '', '', [], RefID);
[login to view URL]('c:\temp\[login to view URL]');
I need someone who is familiar with ObjectToSOAP and SOAPToObject to be able to resolve this code for me.
2) Modification to the SOAP Header.
The second part of the project is that I need to move namespace references from the body to the envelope.
I've used the WSDL importer to import the file which generates a SOAP request with the following:
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="[login to view URL]" xmlns:xsd="[login to view URL]" xmlns:xsi="[login to view URL]">
<SOAP-ENV:Body xmlns:NS1="[login to view URL]" xmlns:NS2="[login to view URL]" xmlns:NS3="[login to view URL]">
<LodgeRex xmlns="[login to view URL]">
<exportDetails>
...
However the server I'm communicating with are expecting to see a SOAP header with the following:
<?xml version="1.0"?>
<soapenv:Envelope xmlns:com1="[login to view URL]" xmlns:com="[login to view URL]" xmlns:lod="[login to view URL]" xmlns:soapenv="[login to view URL]">
<soapenv:Body>
<lod:LodgeRex>
<lod:exportDetails>
...
(Where all the namespace references are in the header, and not the body).
I don't need an entire application written, I just need a small 'test base' application that I've written to be modified to work with SoaptoObject and ObjectToSoap for one object, and the header manipulated as per above.
Hello. Please check the Ews tester project in my portfolio it uses the similar technique to save/load the soap requests. It was built for making dynamic test Soap request for Exchange Web Services.
I'm a good candidate because I actually have experience writing web services using Delphi. Saving the response as a file should be quite easy but modifying headers can be tricky and may in severe cases even require modifying the library source code. It's been a few years since I encountered this problem though and I was using XE5 at the time. I'm currently using XE10 which may not have this issue any more. Anyway, I'm certain there are ways to accomplish what you require and I hope you choose me for this task.
Thanks in advance for considering me and I hope to hear back from you,
Valmar
Good Morning, I am Reinaldo Mendoza, I am expert on delphi, two weeks ago i finished a project related to your problem, specifically the project was about using WSDL from the goverment of spain for sending invoices using delphi, but delphi is not friendly with this. I had to change the all request xml and create manually the headers for send appropially the request.
I can help you with this. let me know