Recentemente abbiamo ricevuto un paio di progetti in cui si consumano webservices SOAP per ottenere i dati. La verità è che per un bel po 'di tempo da quando li ho visto nel mio lavoro regolare. Alcuni anni fa era comune a quasi tutto ciò che avrebbe comportato la comunicazione con le fonti esterne, tuttavia negli ultimi anni era caduto in disuso per alcune cose semplici come un lavoro abbastanza complicato con una semplice richiesta HTTP e di un XML di base potrebbe essere risolto . Proprio questo è sempre stato uno dei più grandi critiche del protocollo SOAP , l'alto consumo di larghezza di banda per una semplice richiesta.
Finora sempre usato NuSOAP per fare chiamate SOAP da PHP , ma ho trovato un problema quando si accede a un servizio di un importante mezzo di comunicazione internazionale. La chiamata non ha restituito risultati con NuSOAP mentre dal test di funzionamento del sistema html corretto.
Dopo aver dato un migliaio di giri e non trovare alcun errore (le altre richieste agli stessi servizi che se lavorate) mi resi conto che PHP ha già una serie di funzioni SOAP nativo, quindi non è necessario NuSOAP. La questione era se funzionano bene, per così dire. Dopo aver aggiunto l'estensione appropriata viene una incompatibilità di piccole dimensioni. NuSOAP e non può utilizzare le funzioni native per la stessa installazione di PHP. In altre parole, se si attiva l'estensione SOAP, NuSOAP smettere di lavorare e iniziare a stendere i messaggi di errore in quanto molte delle funzioni utilizzate hanno lo stesso nome come il nativo, che saranno poi riservati i nomi. Se avete qualsiasi applicazione che utilizza NuSOAP sulla stessa macchina dovranno migrare anche per utilizzare le funzioni native.
esempio di oggi è una semplice chiamata ad un servizio che restituisce un elenco di notizie.
Il processo è molto semplice, è necessario l'url del webservice, il metodo che verrà chiamata e passare i parametri, e come per ogni servizio SOAP, ci verrà restituito un XML.
- ; //url del servicio Servizio $ = "http://dominio.com/noticias?wsdl" / / URL del servizio
- 'idioma' ] = "es" ; Params ['$ lingua'] = "it";
- 'usuario' ] = "manolo" ; ['User' Params] $ = "Manolo"
- 'clave' ] = "tuclave" ; $client = new SoapClient ( $servicio , $parametros ) ; Params [tasto '$'] = "tuclave" $ client = SoapClient nuovo ($ servizio, $ params);
- -> getNoticias ( $parametros ) ; //llamamos al métdo que nos interesa con los parámetros $ Risultato = $ client - getNoticias> ($ params) / / chiama il métdo ci riguarda con i parametri
Con queste semplici istruzioni $ risultato che abbiamo in XML il risultato della chiamata al servizio. Lavorare con l'XML è un po 'ingombrante, ci convertirlo in un array associativo in modo da rendere più facile il trattamento dei dati, si usa la funzione che obj2array descritta di seguito.
- $result ) ; $ Risultato = obj2array ($ risultato);
- [ 'resultado' ] [ 'noticias' ] ; News $ = $ risultato 'risultato [' ['news]'];
- / / Processo il risultato in qualsiasi altro array
- $i = 0 ; $i < $n ; $i ++ ) { for ($ i = 0, $ i <$ n, $ i + +) (
- [ $i ] ; News $ = $ notizia [$ i];
- [ 'id' ] ; Id = $ $ notizie ['id'];
- / / Qui va il resto del codice dove si elaborano i dati ricevuti
- )
- $obj ) { obj2array funzione ($ obj) (
- $obj as $key => $val ) { foreach ($ obj as $ key => $ val) (
- true ) { switch (vero) (
- $key ] = obj2array ( $val ) ; $ Out [$ chiave] = obj2array ($ val);
- break;
- $key ] = obj2array ( $val ) ; $ Out [$ chiave] = obj2array ($ val);
- break;
- default:
- $key ] = $val ; Out [$ key] = $ val;
- )
- )
- ; ritorno $ out;
- )
In seconda linea ci ritroviamo con gli elementi della matrice che si desidera elaborare. Se non sai cosa riporta il webservice può fare un var_dump ($ risultato) e vedrete il risultato. Nel nostro caso, in quanto è una sequenza di notizie, siamo lasciati con l'elemento che ha la notizia.
Come avete notato, io non sono preoccupato per la gestione degli errori quando si chiama il webservice. Questo lo lascio come esercizio per te, che è agosto e non voglio
. Il manuale di PHP è tutte le informazioni.
E questo è tutto gente, oggi è stato un esempio semplice ma molto utile quando è necessario utilizzare SOAP.










37 utenti hanno commentato "Il consumo di webservice SOAP di PHP"
Feed commenti per questa voce TrackbackHOLAP così bene la lezione. Ho un problema con il php SOAP. Il problema è:
Quando si chiama una chiamata di servizio Web senza parametri per me funziona perfettamente, ma quando si chiama un WS con i parametri ricevo il seguente errore:
Fatal error: Uncaught eccezione SoapFault: [SOAP: Server] System.Web.Services.Protocols.SoapException: server non ha potuto elaborare la richiesta. -> System.Data.SqlClient.SqlException: procedura o funzione 'GetBibleWordsByChapterAndVerse' aspetta che il parametro '@ BookTitle', che non era in dotazione. a WebServicex.BibleWebservice.GetBibleWordsByChapterAndVerse (String BookTitle, Int32 capitolo, Int32 Verse) - Fine di stack dell'eccezione interna - in / home / cbarcos / htdocs / testing / soapCliente.php: 35
Questo è il mio codice:
$ Client = new SoapClient ("http://www.webservicex.net/BibleWebservice.asmx?wsdl", array ('trace' => 1));
$ Params = array (
SoapParam nuovo ("Romani", "BookTitle")
SoapParam nuovo (1, "capitolo")
SoapParam nuovo (1, "Versi")
);
$ Data = $ __soapCall client-> ('GetBibleWordsByChapterAndVerse', $ params);
Spero che possiate aiutarmi grazie!
Ciao Fernando,
Prova questo codice, ha funzionato bene:
"Romani"
"Capitolo" => 1,
"Verse" => 1
);
$ Client = new SoapClient ("http://www.webservicex.net/BibleWebservice.asmx?wsdl", $ par);
$ Risultato = $ client-> GetBibleWordsByChapterAndVerse ($ params);
var_dump ($ risultato);
?>
Cordiali saluti,
Osus
Devo utilizzare un servizio Web e il certificato richiesto che possono essere consumati, come faccio per inviare il certificato? .. Grazie
Ciao,
Non so molto su dove va il certificato. Si prega di spiegare ulteriormente quale sia il problema, cosa fai, quali requisiti sono ...
Buon pomeriggio tutorial molto interessante, mi chiedo in che modo devo fare se utilizzare un servizio web che hanno progettato io in eclissi, si prega di ogni idea che possa darmi è il benvenuto
Melvil Ciao,
Potrebbe dare più dettagli?
In linea di principio è stato si blocca sul vostro server web e si mangia senza problemi.
ciao, buon giorno, mi chiedo se qualcuno mi può aiutare. I consumare un'ascia wb servizio. Netto, che restituisce un set di dati da php. Io alla ricerca di informazioni e la verità è molto poco che ho potuto trovare. grazie
Ciao, buona giornata. Vorrei sapere quali sono le estensioni da aggiungere (come dici tu lassù), per gli altri dovrebbe essere simile, perché mettete il codice non funziona, almeno non io. Vedo secondo il tuo esempio si deve abbattere l'osso a consumare php WSDL o PHP IDE non porta le opzioni necessarie per generare il poxis natura o per utilizzare un servizio web.? e un'altra domanda è come si crea un servizio Web in php? possono essere creati? negli esempi che ho visto non trovare quella parte del server che ospita il WSDL.
Si prega di inviare una copia al mio indirizzo e-mail grazie!
Att johnx
http://j2ee-vs-net.blogspot.com
jjjpropio@gmail.com
Analisi comparativa della piattaforma J2EE e. NET applicato allo sviluppo di Web Services
Buona jjjpropio,
Per avere le funzioni SOAP dovrà compilare il PHP con-enable-sapone. Probabilmente avete già compilato un pacchetto per il sistema di confezionamento. Nel mio caso c'è un sapone php di installare l'estensione.
Se il server è Windows solo abilitare l'estensione nel file php.ini.
Certo si può creare un servizio SOAP.
http://es.php.net/manual/es/function.soap-soapserver-construct.php
Cordiali saluti,
Osus
Ciao, sono attualmente la creazione di WS clienti in PHP 5, quando il PHP consumo WS-in o usando NuSOAP non ho alcun problema, ma quando cerco di consumare WS. Netto che posso fare fino a quando il metodo che mangio non ricevono alcun parametro. se il metodo riceve un parametro (s) allora ho il seguente parametro del problema che lo ha mandato tramite il client PHP è stato non arriva mai o qualcosa del genere, spiego, se il WS. netto riceve una stringa di salutare il nome digitato (HOLA Lunaris), poi mi manda HOLA risultato è come se avesse qualche porblem nel parametro inviati da PHP, io sono così con gli interi, se una moltiplicazione di due numeri, poi ritorna sempre il valore 0. L'altra domanda che ho su WS e client PHP è il seguente: Vi è una sorta di incompatibilità quando il WS generare lo schema (Schema), oltre al url've wsdl costruito WS JEE 5 utilizzando NetBeans 6.5 e genera separate dello schema ... e quando cerco di mangiare che genera errore nel php ... .. Beh, forse hai qualche client di esempio PHP che accede a un servizio. Net, che ha alcuni parametri, se riesco a passare sarebbe bene e se il WS. Netto è stato molto meglio per internet problems gravi
Si prega di inviare una copia al mio indirizzo e-mail grazie!
Il mio msn è jjjpropiox@hotmail.com , vorrei aggiungere al tuo msn! a parlare .. molto meglio su questo argomento
Grazie
Att johnx
http://j2ee-vs-net.blogspot.com
jjjpropio@gmail.com
Analisi comparativa della piattaforma J2EE e. NET applicato allo sviluppo di Web Services
Ciao, ho costruito un web service client java e in php, io lavoro molto bene, ma da qualche tempo ho un problema che il client non si connette al servizio, e questo accade solo a me in alcune occasioni, ma ogni il tempo è più spesso e di non fare l'errore che getta:
Fatal error: Uncaught eccezione SoapFault: [HTTP] Impossibile connettersi all'host in D: \ xampp \ htdocs \ ProyFrances Classes \ clienteService_class.php \: 136 Stack trace: # 0 [funzione interna]: SoapClient-> __doRequest ('__call ( 'datosEjercicio', Array) # 2 D: \ xampp \ htdocs \ ProyFrances \ Classes \ clienteService_class.php (136): SoapClient-> datosEjercicio (Array) # 3 D: \ xampp \ htdocs \ ProyFrances \ encejercicio.php (13) : ClienteService-> datosEjercicio ('1 ') # 4 (principale) gettato in D: \ xampp \ htdocs \ ProyFrances Classes \ clienteService_class.php \ on line 136
Ho controllato tutto e non può essere, cosa buffa è che quando spengo il computer e accendere a volte funziona senza problemi.
Apprezzo l'aiuto
Ciao Leonardo,
Penso che il messaggio è del tutto indicativo del vostro errore:
Secondo il messaggio e la tua spiegazione, a volte si perde la connessione al server.
Osus
Che Osus tale, grazie per il contributo che si desidera perdere tempo con una query, la questione è più legato al tempo di risposta, spiego, ho un client webservice sviluppato in php con NuSOAP montato su una architettura server con un po 'sparse, 256 RAM Processore Pentium III a 1 GHz, piuttosto piccola ma al tempo era un maquinota, beh la questione è, perché nel tuo post hai detto che consumano larghezza di banda di sapone e il client webservice Dico questo richiede circa 15 secondi per consumo di un servizio da un altro webservice anche sviluppato in php con NuSOAP, la questione è che la sonda e montare il client su un altro server più robusta, senza modificare alcunché, e la risposta è pervenuta quasi istantaneamente, e volevo sapere se siete a conoscenza di parametro che deve essere modificata la configurazione di apache o php che serve a diminuire il tempo di risposta. Apprezzo qualsiasi suggerimento.
Saluti.
Che così, ho deciso che il problema è legato alla MaxKeepAliveRequests parametro di configurazione di Apache (nel mio caso è stato m apache2.conf 'utilizzando Ubuntu 7.04 Feisty-fulvo), il parametro era aumentata per dare un maggior numero di connessioni e In questo modo il consumo di webservices divenne troppo lenta (15 sec per servizi consumati). Noi basso è il valore e ora prende 2 secondi, è chiaro che il problema ora accettare un minor numero di connessioni, ma per il momento è più favorevole a ridurre il tempo di risposta.
See ya.
Ciao, ho un web service client java e in php, io lavoro relativamente bene, perché quando sono tornato dal servizio web è un array di più record il risultato che ottiene è un array con due record a meno che non restituisce realmente Java Web Service. Sai che può essere dovuto.
Grazie
Ciao, ho un web service client java e in php, io lavoro relativamente bene, perché quando tornò from il web service è un array di record multiple il risultato I ottiene è un array con due dischi che unless returns really Java Web Service. Sai che può essere dovuto.
Grazie
Ciao buongiorno, ho bisogno di aiuto, qualcuno mi può aiutare con un webservice per la consultazione delle informazioni ottenute da forte
L server è: http://200.26.159.122/webservicessystem/webservices.asmx?WSDL e lo script che sto utilizzando è questo, se posso aiutare con qualcosa di più semplice e che avrebbero apprezzato molto:
_ws clienteWeb = new ();
)
getMembershipValue funzione () (
)
checkMembership funzione ($ cedula) (
Cedula $ = ($ sCedula)
$ Risposta = $ this-> _ws-> richiesta ('cargaDatosAfiliado', $ cedula)
foreach ($ risposta come resActual $) (
if (is_array ($ resActual)) (
return true;
Else ()
return false;
)
)
)
)
?>
Selezionare
Cedula:
AElemento $)
echo "". $ resActual [""].""; nome
?>
Se volete potete contattarmi via mail, e che non posso posto: ecco il codice completo juantorrado@hotmail.com
Salve, ho bisogno di connettersi a un servizio Web, e devo spedire come parametro un nodo in un file xml, prova XmlNode NuSOAP NULL e ho risposto, e ho a che fare con PHP5 come sapone ...
esempio =
$ File = "abcdefgh.xml"
$ Content = simplexml_load_file ($ file);
da provare:
print_r ($ contenuto);
Parametri array $ = ("abcdefg" => $ content);
e la funzione di chiamata e mi riporta:
Non riuscito. Motivo: XmlNode Null Encountered
Se posso aiutare, io vi ringrazio, se hai bisogno di maggiori informazioni fammi sapere ...
GRAZIE ...
Osus Ciao,
Grazie per il post, è istruttivo. Volevo chiedere ...
Devo per connettersi a un WS che restituisce una classe.
In PHP non c'è modo per generare classi o qualcosa di simile (proxy), per raccogliere la risposta del metodo chiamato?
Oppure l'unica opzione è quella di analizzare un po 'la mano?
la ringrazio molto in anticipo.
Cordiali saluti,
martora
Ciao Marta,
È possibile effettuare una mappatura tra le classi del server e credete nella vostra php.
Guardate la pagina del costruttore:
http://es2.php.net/manual/en/soapclient.soapclient.php
per quanto riguarda CLASSMAP
Osus
Ciao! La ringrazio molto per la risposta.
Così vedo ... non generati automaticamente. Credo che Java e. Net è corsa molto più avanti di PHP, almeno per quanto riguarda il consumo di servizi web ...
Penso che valga la pena utilizzare PHP per questo compito.
Cordiali saluti,
martora
Ciao sto lavorando in C # stava consumando e voleva sapere se è uguale se la stessa funzione utilis registro alla ricerca che è quello che inserire dati o devo utilizzare un'altra funzione che non registra per:
$ Server-> registro ('insertarCliente'
array ('Nitt' => 'xsd: string')
array ('return' => 'xsd: boolean'),
$ Ns);
Questa è la mia funzione che rende la mia ricerca
funzione buscarCliente ($ Nitt)
(
Buona $ = false;
$ Q = "SELECT * FROM clienti WHERE nit LIKE '%". $ Nitt ."%'";
$ M = nuovo MYSQL (_host, _login, _passdb, _dbname)
if ($ m-> query ($ q))
(
Buona $ = true;
/ / $ Userid = getId m-> ();
)
return $ buono;
)
funzione insertarCliente ($ fullname, $ nit, $ address, $ telefono, $ telefono, $ email, $ città)
(
Buona $ = false;
Q $ = "INSERT INTO clienti (fullname, nit, indirizzo, telefono, cellulare, email, città) i valori (\" ". $ FullName." \ ", \" ". $ Nit." \ ", \". " indirizzo $. "\", telefono \ "". $. "\", la cella \ "". $. "\", e-mail \ "". $. "\", la città \ "." $. "\" ) ";
$ M = nuovo MYSQL (_host, _login, _passdb, _dbname)
if ($ m-> query ($ q))
(
Buona $ = true;
/ / $ Userid = getId m-> ();
)
return $ buono;
)
più chiaro come inserire un dato nei miei DB senza ricorrenza.
ING studente primo sistema semestre
Ciao Davide,
4 non capisco i vostri commenti, dopo aver letto tutto quello che ottengo è chiaro che non hanno nulla a che fare con webservices.
Puoi spiegare il problema più a fondo?
Ciao amici sto cercando di creare un servizio web client che comunica con un altro ministero dei Trasporti ( https: / / manifiesto.mintransporte.gov.co / mucregistro / RegistraManifiesto? WSDL ) e non ho potuto nemmeno fare nulla in PHP5 e inviare dati vuota viene comunicato, ma con una classe creata dal wsdl2php datearlas e getta me l'errore: 'Nessuna Deserializzatore trovato ArrayOfmucRegistra_RemesaType2User'
Vorrei poter aiutare.
Pdt https: Heintentado un'applicazione desktop Java, ma mi dà l'errore: "[SOAPException: FaultCode = SOAP-ENV: IOException; msg protocollo non supportato = ''; TargetException = HTTPClient.ProtocolNotSuppException: protocollo non supportato '] https' '
Grazie in anticipo
Ciao Javier,
Può dirci dati di prova sono indica il metodo per testare le sue prestazioni?
Pusuario = $ (reale 96.191.554);
Pempresa = $ (reale 8600068755);
Pfirma $ = "MIAGCSqGSIb p2/3bEmkAvhng8KeMA0GCSqGSIb3DQEBBQUAMIGBMQswCQYDVQQGEwJDTzFHMEUGA1UECgw 7 +5 + U + ME/YZpPRfG2EWv78nUlPPzEkJT5CvXltq88izm2oBXpcMm0Mvhrr9qDR0eJ6G4RGHfd/tGs6NV1DppOei7C51gyyxw4TMSs JLEPY0UCUGSjdneued0oAj5/2AilPs / / vyImpEfy/RPBDY816QNoh8Vaojw6wOvlVwIDAQABo4ICNzCCAjMwJwYDVR0RBCAwHoEcU0lTVEVNQVNAQlVTRVNCTEFOQ09TLkNPTS5DTzAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwID DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwEQYJYIZIAYb4QgEBBAQDAgWgMB0GA1UdDgQWBBSMQgyI2m + + + ggbyggbmGWWh0dHA6Ly93d3cuY2VydGljYW1hcmEuY29tL3JlcG9zaXRvcmlvcmV2b2NhY2lvbmVzL2FjX3N1Ym9yZGluYWRhX2NlcnRpY2FtYXJhLmNybD9jcmw9Y3JshlxodHRwOi8vbWlycm9yLmNlcnRpY2FtYXJhLmNvbS9yZXBvc2l0b3Jpb3Jldm9jYWNpb25lcy9hY19zdWJvcmRpbmFkYV9jZXJ0aWNhbWFyYS5jcmw/Y3JsPWNybDANBgkqhkiG9w0BAQUFAAOCAQEAHrxgk4 Nsr2aTytzAfBgNVHSMEGDAWgBTPw87HE8Ecs2mqxTVfT6RB06K4jzCBpwYDVR0gBIGfMIGcMIGZBgsrBgEEAYG1YzIBATCBiTArBggrBgEFBQcCARYfaHR0cDovL3d3dy5jZXJ0aWNhbWFyYS5jb20vZHBjLzBaBggrBgEFBQcCAjBOGkxMaW1pdGFjaW9uZXMgZGUgZ2FyYW507WFzIGRlIGVzdGUgY2VydGlmaWNhZG8gc2UgcHVlZGVuIGVuY29udHJhciBlbiBsYSBEUEMuMIHNBgNVHR8EgcUwgcIwgb EdUsPLPzy + + + lBsYgKsB4JSAveRmymW9UW/yIwot3XfQIGyhss7nqM/XH5xZ6bLqZcvy7dUnc6DTbKudc94/G2QvsyGnCkTNXfqS/dR2NgfVmFWXzYb39VuKILF MvJvkWXinbpYg1JQjqeblvE542 / +5 PkF5BhIijzl9HT7HpzaDmr/a0XjzC3GdtOsMAGoVIolXKbiCsdrjWwjoAHgAoVyoZ4nU5VUpbCN CqXbAhNt17Jr64xeBfr2n/f9VvCYRTXC3cFdLDSjUAcJDj zmqo1zM3d/d03Zp3vmZSyY1ZQXgFgfv + + + OhaZ8L8toyTzBLcY0vh/w32YMF8 U29jaWVkYWQgQ2FtZXJhbCBkZSBDZXJ0aWZpY2FjacOzbiBEaWdpdGFsIC0gQ2VydGljw6FtYXJhIFMuQS4xKTAnBgNVBAMMIEFDIFN1Ym9yZGluYWRhIENlcnRpY8OhbWFyYSBTLkEuMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqlpiZUWyPM AcTDUrAgFXVBkQKAJPHm6O9PIsWXQlOS5bx/7IGzCCBfEwggPZoAMCAQICEDtJ0MiqGQzsSC3/iInsU3MwDQYJKoZIhvcNAQEFBQAwezELMAkGA1UEBhMCQ08xRzBFBgNVBAoMPlNvY2llZGFkIENhbWVyYWwgZGUgQ2VydGlmaWNhY2nDs24gRGlnaXRhbCAtIENlcnRpY8OhbWFyYSBTLkEuMSMwIQYDVQQDDBpBQyBSYcOteiBDZXJ0aWPDoW1hcmEgUy5BLjAeFw0wODA1MTYyMTQxMjhaFw0zMDA0MDEyMTQyMDJaMIGBMQswCQYDVQQGEwJDTzFHMEUGA1UECgw + + + pJ6YThuRb40EOj0YX9td8ne XP5m5Umpl6q33gVOkZn8yVKA61bXE/dJi980cHdmG gUhZsd0JX2Ur6gbKZIxUhOqGKIGVF8q14aXpfLvET5rQKwQFfM5cIbfRw5SmGdMhWNzQrGtGxiKf8U7Zl7 + + 9 PRsHxLmqzowo8ROkRlyXy1LXLMDlKGoekP7MJv9lMTtrygyO9mT8Do/4vSoAAw pJzYhiDiIZpHPSpF/5WbwJJpnZ0dgq6UQSTPpQ2yXnGHCVBcKgL5rrWQ/O L8IKm8DobZ + + + + WA8J12h JNkTbQIDAQABo4IBaDCCAWQwEgYDVR0TAQH yvz3B / BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFM/DzscTwRyzaarFNV9PpEHToriPMB8GA1UdIwQYMBaAFNEJ0OnXznl0VPk6MLP0bSwDAxtoMIGgBgNVHSAEgZgwgZUwgZIGBFUdIAAwgYkwKwYIKwYBBQUHAgEWH2h0dHA6Ly93d3cuY2VydGljYW1hcmEuY29tL2RwYy8wWgYIKwYBBQUHAgIwThpMTGltaXRhY2lvbmVzIGRlIGdhcmFudO1hcyBkZSBlc3RlIGNlcnRpZmljYWRvIHNlIHB1ZWRlbiBlbmNvbnRyYXIgZW4gbGEgRFBDLjBbBgNVHR8EVDBSMFCgTqBMhkpodHRwOi8vd3d3LmNlcnRpY2FtYXJhLmNvbS9yZXBvc2l0b3Jpb3Jldm9jYWNpb25lcy9hY19yYWl6X2NlcnRpY2FtYXJhLmNybDANBgkqhkiG9w0BAQUFAAOCAgEAYdU/x2/EpMy89fU126AwfoAeg1fHoUgTAXPG5QfQfVSHPWjNsGqt/2aKVcnHUj/E + + uBP80NEWyYJvHqY8IdsEsrjX25J5LGEX5pAQmnk5M7fR9Y4Gt yQuH4 MPp0u1bCeDjlSMy926OR684umkRUInah/X3dcy + + CF / KAJ + + pubWrMFUhiUyfG ZpMfGZeKACmWjBrd21QfK5MJPE/uilPIq1V/P1p2EU9gD4zC NqRElMiw51Fv7jtixB4goKc3XoQnf6zBiz/aFlYNXRx0vPymGXXp8D5lTZPa9QYgReaYLTCiZ8IlWgx2iqz3JdwlyKXu6n3VJ8uk6I6eGX7nsIaV 8 + + / + BjzoKSytLFseobDKU20cJx1fvzYIJ4g/soXpPsoqOLB9PD74DR4EOekSeWCDpKy5pD2X90gnpK4LEiivASkXF40nuPMWFM/Z4pNARYuaPP2hSme8VY/bxetxfYNuxuARdfWiQ V5HBSXFd1zRGsY89JESJcIDh9uat7vqESMJsc340yXweiILiSQ7zcCI42n9LOVsDtGfxJ9DTkEftGDxsOO8v5Y / mjrnOHZKHScCLd9zN/WsobPcdpqfD8gDKmF3BBQa2VNl3DinKYLP/iJjCgfmMET6avVouqftzgcMyYIIUBuFNDJIKpBb97L2ByN8xoMf55hfMggaAB0AADGCAZwwggGYAgEBMIGWMIGBMQswCQYDVQQGEwJDTzFHMEUGA1UECgw + 7 p2/3bEmkAvhng8KeMAkGBSsOAwIaBQCgXTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0wOTA5MDIxOTU3NDZaMCMGCSqGSIb3DQEJBDEWBBS/7bp U29jaWVkYWQgQ2FtZXJhbCBkZSBDZXJ0aWZpY2FjacOzbiBEaWdpdGFsIC0gQ2VydGljw6FtYXJhIFMuQS4xKTAnBgNVBAMMIEFDIFN1Ym9yZGluYWRhIENlcnRpY8OhbWFyYSBTLkEuAhANCP K2awikVBOr2QXARfCEzXNjANBgkqhkiG9w0BAQEFAASBgK7wfbGB5fDC1b/tgxnAc6LNXjSgFTaI0YpKtodmd3i0eN9pGUXrxNA9CTrjZmunIzXlS5fNGOlMIzJS79jd A30 + + + + VlRcqOK2r692lo9VirAS6xMxYSBmlhcLt1dBm3RDgrx4Utsr1Wh5z1bZAAAAAAAA d1JS59grcBr4YmjKEqZtgqGvuM "
Pfirmado $ = "96191554 \; 8600068755 \; nuevo860 \; 8628169,9169564,9169565,9169566,9173143,9173144,9173145,9173146,9173147,9173148,9173149,9173150,9173151,9173152,9173153,9173154,9173155,9173156,9173157 , 9173158,9173159,9173160,9173161,9173162,9173163,9173164,9173165,9173166,9173167,9173168,9173169,9173170,9173171,9173172,9173173,9173174,9173175,9173176,9173177,9173178,9173179,9173180,9173181,9173182 , 9173183,9173184,9173185,9173186,9173187,9173188,9173189,9173190,9173191,9173192,9208013,9208014,9208015,9208016,9208017,9208018,9208019,9208020,9208021,9208022,9208023,9208024,9208025,9208026,9208027 , 9208028,9208029,9208030,9208031,9208032,9208033,9208034,9208035,9208036,9208037,9208038,9208039,9208040,9208041,9208042,9230025,9230026,9230027,9230028,9230029,9230030,9230031,9230032,9230033,9230034 , 9231005,9231006,9231007,9231008,9231009,9231010,9231011,9231012,9231013,9231014,9251990,9251991,9251992,9251993,9251994,9251995,9251996,9251997,9251998,9251999,9257130,9257131,9257132,9257133,9257134 , 9257135,9257136,9257137,9257138,9257139,9324072,9324073,9324074,9324075,9324076,9324077,9324078,9324079,9324080,9324081,9324082,9324083,9324084,9324085,9324086,9324087,9324088,9324089,9324090,9324091 , 9324092,9324093,9324094,9324095,9324096,9324097,9324098,9324099,9324100,9324101,9371761,9371762,9371763,9371764,9371765,9371766,9371767,9371768,9371769,9371770,9371771,9371772,9371773,9371774,9371775 , 9371776,9371777,9371778,9371779,9371780,9373331,9373332,9373333,9373334,9373335,9373336,9373337,9373338,9373339,9173173,9208037,9230031,9324077,9324078,9371764,9251998,9257133,9257134,9324072,9324073 , 9324074,9324083,9324085,9324088,9324096,9324097,9324098,9324099,9324101,9371762,9371763,9371767,9371768,9371769,9371770,9371771,9371772,9371773,9371774; "
$ SClient SoapClient = new ("RegistraManifiesto1.wsdl", array ('uri' = http://mucRegistra/registraManifiesto.wsdl> '
'SOAPAction' => ")
Grazie per il tuo Osus risposta e spero di poter aiutare, la si ritorna qualcosa come:
Oggetto stdClass Object (] [peregremesaOut => stdClass Object (] array [=> Array ([0] => stdClass Object (] remnumero [=> [remnromanifiesto] => Stato [] =>))) [] peregmanifiestoOut => stdClass Object (] array [=> Array ([0] => stdClass Object (] mannumero [=> [] mannumeroEmpresa => [] tarifaflete => Stato [] =>))) [] peregvehiculoOut => stdClass Object ([ ] = array> Array ([0] => stdClass Object ([vehplaca] => Stato [] =>))) [] peregconductorOut => [] peregterceroOut => stdClass Object (] array [=> Array ([0] => stdClass Object (] [pertipid => [Periden] => [stato] =>))) [pmensajeOut] => 0)
Ma per riempire i dati non permette l'invio di errori: "Nessun mapping trovato ...." dezerializer o non trovato per ... 'grazie
spiacente per tali informazioni
Javierwicca Ciao,
Mi è capitato un esempio che ha funzionato:
Client = $ SoapClient nuovi ("https: / / manifiesto.mintransporte.gov.co / mucregistro / RegistraManifiesto? Wsdl", Array ());
$ Res = $ wsmani client-> ($ pusuario, $ pempresa, pfirmado pfirma $, $)
var_dump ($ res);
Esso restituisce:
oggetto (stdClass) # 2 (6) (
["PeregremesaOut"] =>
NULL
["PeregmanifiestoOut"] =>
NULL
["PeregvehiculoOut"] =>
NULL
["PeregconductorOut"] =>
NULL
["PeregterceroOut"] =>
NULL
["PmensajeOut"] =>
string (2190) "La società che invia informazioni (T = controllo del traffico, COGNOME = ACOSTA BARRERA, VIA CALLE 63 = 80-22 SUR N, ST = BOGOTA, OU = TRAFFICO, di digitare = 96191554,1.3.6.1. 4.1.23267.2.3 = 8600068755,1.3.6.1.4.1.23267.2.2 = 96191554,1.3.6.1.4.1.23267.2.1 = 03, O = AUTOBUS TUSM SA BIANCO, L = BOGOTA, GivenName = DANILO Hernando, E = SISTEMAS@BUSESBLANCOS.COM.CO, CN = DANILO ACOSTA HERNANDO BARRERA, C = CO) fimado testo è 96191554, 8600068755, 860; 8628169,9169564,9169565,9169566,9173143,9173144,9173145,9173146,9173147,9173148,9173149 , 9173150,9173151,9173152,9173153,9173154,9173155,9173156,9173157,9173158,9173159,9173160,9173161,9173162,9173163,9173164,9173165,9173166,9173167,9173168,9173169,9173170,9173171,9173172,9173173,9173174 , 9173175,9173176,9173177,9173178,9173179,9173180,9173181,9173182,9173183,9173184,9173185,9173186,9173187,9173188,9173189,9173190,9173191,9173192,9208013,9208014,9208015,9208016,9208017,9208018,9208019 , 9208020,9208021,9208022,9208023,9208024,9208025,9208026,9208027,9208028,9208029,9208030,9208031,9208032,9208033,9208034,9208035,9208036,9208037,9208038,9208039,9208040,9208041,9208042,9230025,9230026 , 9230027,9230028,9230029,9230030,9230031,9230032,9230033,9230034,9231005,9231006,9231007,9231008,9231009,9231010,9231011,9231012,9231013,9231014,9251990,9251991,9251992,9251993,9251994,9251995,9251996 , 9251997,9251998,9251999,9257130,9257131,9257132,9257133,9257134,9257135,9257136,9257137,9257138,9257139,9324072,9324073,9324074,9324075,9324076,9324077,9324078,9324079,9324080,9324081,9324082,9324083 , 9324084,9324085,9324086,9324087,9324088,9324089,9324090,9324091,9324092,9324093,9324094,9324095,9324096,9324097,9324098,9324099,9324100,9324101,9371761,9371762,9371763,9371764,9371765,9371766,9371767 , 9371768,9371769,9371770,9371771,9371772,9371773,9371774,9371775,9371776,9371777,9371778,9371779,9371780,9373331,9373332,9373333,9373334,9373335,9373336,9373337,9373338,9373339,9173173,9208037,9230031 , 9324077,9324078,9371764,9251998,9257133,9257134,9324072,9324073,9324074,9324083,9324085,9324088,9324096,9324097,9324098,9324099,9324101,9371762,9371763,9371767,9371768,9371769,9371770,9371771,9371772 , 9371773.9371774, Error ORA-06.531: Riferimento alla raccolta non inizializzato "
)
Potrebbe essere necessario girare nel tuo php.ini le estensioni CURL e OpenSSL come l'URL è stato SSL.
Speranza che ha risolto il problema
Grazie per la risposta:
perché lassù devo ottenere il poblema Logar è quando gli oggetti Dateo PregRemesa2 (Contiene una serie di mucRegistra_RemesaType2User classe) PregManifiesto (che contiene un array di classe mucRegistra_ManifiestoType2User) e così via in pregVehiculo dati, pregConductor, Usa pregTercero uno strumento noto come WSDL2PHP e lei genera automaticamente le classi in PHP, ma il ripieno e provare a inviare mi genera l'errore "non trovato per deserialer ArrayOfmucRegistra_RemesaType2User"
Troppo male si sia osus agradesceria fastidio se poteste aiutarmi questo è uno di classe che mi genera il WSDL2PHP:
(MucRegistra_RegRemesa2 classe
pubblico array $ / / ArrayOfmucRegistra_RemesaType2User
)
(MucRegistra_RemesaType2User classe
pubblico nitempresa $ / / decimale
pubblico remnumero $ / / decimale
pubblico remunidaMedida $ / / decimale
pubblico remcantidad $ / / decimale
pubblico rempeso $ / / decimale
pubblico remunidaEmpaq $ / / decimale
pubblico remnaturaleza $ / / decimale
pubblico remcodproducto $ / / stringa
pubblico remdescrProdu $ / / stringa
pubblico remremitente $ / / stringa
pubblico remdestinatario $ / / stringa
pubblico remciudadDesti $ / / decimale
pubblico remnromanifiesto $ / / stringa
pubblico remtipidremitente $ / / stringa
pubblico remidenremitente $ / / decimale
pubblico remnroremempresa $ / / stringa
pubblico remestado $ / / stringa
pubblico remtipiddestinatario $ / / stringa
pubblico remidendestinatario $ / / decimale
pubblico rempoliza $ / / stringa
pubblico remaseguradora $ / / decimale
pubblico remvencimiento $ / / stringa
pubblico remduenopoliza $ / / stringa
pubblico remciudadOrig $ / / decimale
pubblico remvalremesa $ / / decimale
pubblico remvalproducto $ / / decimale
pubblici statali $ / / stringa
)
E il problema sembra essere la mappatura WSDL2PHP ma credo che con le altre classi:
privato array = static $ classmap (
'MucRegistra_RegRemesa2' => 'mucRegistra_RegRemesa2'
'MucRegistra_RemesaType2User' = mucRegistra_RemesaType2User> '
'MucRegistra_RegManifiesto2' => 'mucRegistra_RegManifiesto2'
'MucRegistra_ManifiestoType2User' = mucRegistra_ManifiestoType2User> '
'MucRegistra_RegVehiculo2' => 'mucRegistra_RegVehiculo2'
'MucRegistra_VehiculoType2User' = mucRegistra_VehiculoType2User> '
'MucRegistra_RegConductor' = mucRegistra_RegConductor> '
'MucRegistra_ConductorTypeUser' = mucRegistra_ConductorTypeUser> '
'MucRegistra_RegTercero' = mucRegistra_RegTercero> '' 'mucRegistra_TerceroTypeUser' = mucRegistra_TerceroTypeUser> '
'MucRegistra_RegistraManifiestoImpl_wsmani_Out' = mucRegistra_RegistraManifiestoImpl_wsmani_Out> '
'MucRegistra_RegEstRemesa' = mucRegistra_RegEstRemesa> '
'mucRegistra_EstRemesaTypeUser'=>'mucRegistra_EstRemesaTypeUser',
'mucRegistra_RegEstManifiesto'=>'mucRegistra_RegEstManifiesto',
'mucRegistra_EstManifiestoTypeUser'=>'mucRegistra_EstManifiestoTypeUser',
'mucRegistra_RegEstVehiculo'=>'mucRegistra_RegEstVehiculo',
'mucRegistra_EstVehiculoTypeUser'=>'mucRegistra_EstVehiculoTypeUser',
'mucRegistra_RegEstConductor'=>'mucRegistra_RegEstConductor',
'mucRegistra_EstConductorTypeUser'=>'mucRegistra_EstConductorTypeUser',
'mucRegistra_RegEstTercero'=>'mucRegistra_RegEstTercero',
'mucRegistra_EstTerceroTypeUser'=>'mucRegistra_EstTerceroTypeUser',
);
public function registraManifiesto($wsdl = “https://manifiesto.mintransporte.gov.co/mucregistro/RegistraManifiesto?WSDL”, $options = array()) {
foreach(self::$classmap as $key => $value) {
if(!isset($options['classmap'][$key])) {
$options['classmap'][$key] = $value;
}
}
parent::__construct($wsdl, $options);
nuevamente pido disculpas por el exceso de info.
Gracias Totales
Viejo necesito una asesoria… me la puedes brindar
¿Cual es tu problema Alexander?
Lascia una risposta