Ho un servizio Web WCF che consente sia client Basic HTTP che WS-HTTP, sia tramite HTTPS che utilizzando l'autenticazione della password nome utente &. Questo risultato è ottenuto con due associazioni sullo stesso servizio.Utilizzo di PHP per chiamare un servizio Web WCF con più associazioni
Così, il servizio è a https://foo.com/Service.svc, l'HTTP di base (SOAP 1.1) endpoint è https://foo.com/Service.svc/Unp11, e WS-HTTP (SOAP 1.2) endpoint è https://foo.com/Service.svc/Unp.
Un client sta tentando di accedere a questo servizio Web tramite PHP 5, utilizzando il supporto SOAP integrato e ha difficoltà a connettersi al servizio. Continua a ricevere una risposta HTTP 400 (Richiesta non valida), che tende a verificarsi se il messaggio SOAP è mal formato o se viene inviato un messaggio SOAP 1.1 a un endpoint SOAP 1.2 (o viceversa).
Conosco solo PHP di base, quindi ho problemi ad aiutarlo. So che puoi creare un cliente eseguendo
$client = new SoapClient('https://foo.com/Service.svc?wsdl');
ma come si specifica il binding/endpoint? Ci sono problemi noti per ottenere tutto questo con PHP?
UPDATE
Ok, in modo da poter utilizzare PHP per la connessione al servizio WCF ok (specificando la versione SOAP nel costruttore SoapClient
), e chiamando $client->__getFunctions()
restituisce un elenco corretto di tutte le operazioni di servizio web.
quando provo a chiamare uno utilizzando $client->__soapCall
, la pagina appena ci si siede si carica per un bel po ', e alla fine restituisce l'errore "errore durante il recupero http header". Che cosa esattamente dovrebbe significare e come lo risolvo? (Consumare il servizio dal client .Net funziona perfettamente.)
Grazie, questo è stato utile.Ora quando chiamo una delle operazioni del servizio, lo script non sembra tornare! Ho aggiunto alcuni dettagli alla domanda originale. –
Oops, non ho aspettato abbastanza. "Errore durante il recupero degli header http" apparentemente ...? –