Re: [SOAP] Cannot find encoding

From: Date: Mon, 09 May 2011 11:10:31 +0000
Subject: Re: [SOAP] Cannot find encoding
References: 1 2 3 4 5 6  Groups: php.soap 
Request: Send a blank email to php-soap+get-3293@lists.php.net to get a copy of this message
Den 09-05-2011 12:48, Richard Quadling skrev:
On 9 May 2011 11:26, Finn Gruwier Larsen<finn@gruwier.dk> wrote:
Den 09-05-2011 12:14, Richard Quadling skrev:
On 9 May 2011 11:12, Finn Gruwier Larsen<finn@gruwier.dk>    wrote:
Den 09-05-2011 12:01, Richard Quadling skrev:
On 9 May 2011 09:52, Finn Gruwier Larsen<finn@gruwier.dk>      wrote:
Hi, I am trying to get a SOAP request working. At this line in my code: $info = $soapClient->__call("getLegalUnit", array($ap_param)); I get this error: PHP Fatal error: SOAP-ERROR: Encoding: Cannot find encoding in<file> <line no>. What does "encoding" mean in this context, and how do I specify it? Best regards, Finn -- PHP Soap Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
What parameters do you pass to the SOAPClient constructor? http://docs.php.net/manual/en/soapclient.soapclient.php "The encoding option defines internal character encoding. This option does not change the encoding of SOAP requests (it is always utf-8), but converts strings into it." I use these options (amongst others) ...
                                                'encoding'  =>
'ISO-8859-1',
                                                'exception' =>      True,
                                                'trace'     =>      True,
Richard.
I only passed the "trace =>    True" parameter.
Passing the extra parameters above does not change anything. I also tried
"encoding =>    'UTF-8'" with same result.
Finn
Can you show more code?
Sure. <?php // Create private key: $privateKey = openssl_pkey_new(); // Create certificate signing request: $csr = openssl_csr_new(array('http://...'), $privateKey); // Get public key: $publicKey = openssl_csr_get_public_key($csr); // print_r(openssl_pkey_get_details($publicKey)); // Create SOAP client: $params = array(
            'trace' =>  True,
            'encoding'  =>  'UTF-8',
            'exception' =>  True);
$soapClient = new SoapClient("LegalUnitGet_20080401.wsdl", $params); $ns = 'http://...'; // Prepare SoapHeader parameters $sh_param = array(
            'PrivateKey'    =>      $privateKey,
            'PublicKey'    =>       $publicKey);
$headers = new SoapHeader('http://...', 'Security', $sh_param); // Prepare Soap Client $soapClient->__setSoapHeaders(array($headers)); // Setup the RemoteFunction parameters $ap_param = array(
            'LegalUnitIdentifier'     =>      'xxxxxx',
            'UserId'    =>      'xxxxx',
            'Password'    =>      'xxxxx');
$info = $soapClient->__getFunctions(); print_r($info); // Call Remote Function () $error = 0; try {
    $info = $soapClient->__soapCall("getLegalUnit", array($ap_param));
} catch (SoapFault $fault) {
    $error = 1;
    print("Faultcode: ".$fault->faultcode)."\n";
    print("Faultstring: ".$fault->faultstring);
} -- Finn Is the file and line in the file you've shown? As you are using Soap faults, is it possible that this is a server side error coming across in the soap fault? I'm not quite sure I understand the first question - but the line in which the error occurs is ths one: $info = $soapClient->__soapCall("getLegalUnit", array($ap_param)); It is not a server side error. I get the same error even if I leave out Soap faults. Besides, the server is a Java server and if I get errors from it, it will normally be in the shape of a Java stack trace. Finn

« previous php.soap (#3293) next »