I am really new to Web Services and xml and I'am Having problems sending xml to a web server
I' am using SoapCliente Php class
$client = new SoapClient($wsdlUrl, $soapClientOptions);
I'm not having any problem sending strings
$param = ["key" => "somekey"];
var_dump($client->somemethod($parms));
But, I am having probles sending xml data as is requered on the web service documentation
@WebParam(name = "xml") byte[] xml);
On the getTypes method:
var_dump($client->__getTypes());
Is specified in this way:
base64Binary xml
So I first stored the xml file as a string variable and then i tried:
$xmlstring = "some xml";
$xmltosend = unpack('C*', $xmlstring);
var_dump($client->somemethod($xmltosend));
And:
$xmlstring = "some xml";
$xmltosend = base64_encode($xmlstring);
var_dump($client->somemethod($xmltosend));
The Web Service always send a response acording to the data so if the send was correct i will get some succes xml data. In both cases I get this error:
FILES SENT NOT COMPLY WITH THE ESTABLISHED SPECIFICATIONS: EXTENSION, CODIFICATION
The xml format that i am sending is provided as a test example by the web service's documentation so i think the xml is Ok, so I am clueless of what I am missing.
Edit
This is exactly how the params are excected on the documentation
@WebMethod
@WebResult(name = "RespuestaRecepcionComprobante")
public RespuestaSolicitud validarComprobante(@WebParam(name = "xml") byte[]
xml);
So i just sended the xml string and it worked
$param = ["xml" => $xmlstring];
var_dump($client->validarComprobante($param));
It's ok to send the data like this? The web service read the xml and send me an Ok response I also expect an xml response but I dont know how to catch it