PHP ile bir WSDL Sabun isteği ile bir Soap Header gönderme

1 Cevap php

Ben SOAP için son derece yeni ve ben bir ASP.NET web hizmeti tüketir PHP hızlı bir sınama istemci uygulamaya çalışıyorum. Web hizmeti yetkilendirme parametreleri içeren bir Soap Header dayanır.

O WSDL kullanırken boyunca bir sabun isteği ile auth başlık göndermek mümkün mü?

Benim kod:

php

$service = new SoapClient("http://localhost:16840/CTI.ConfigStack.WS/ATeamService.asmx?WSDL");
$service->AddPendingUsers($users, 3); // Example

webservice

[SoapHeader("AuthorisationHeader")]
[WebMethod]
public void AddPendingUsers(List<PendingUser> users, int templateUserId)
{
    ateamService.AddPendingUsers(users, templateUserId, AuthorisationHeader.UserId);
}

Nasıl auth başlığı bu bağlamda geçmiş olacaktır? Yoksa başlığında geçmek için düşük bir kolu __ soapCall () yapmak gerekir? Ayrıca, PHP içinde doğru sabun çağrısını çağırmadan ben?

1 Cevap

Sen bir başlık oluşturmak ve sonra sonraki tüm istekleri için gönderilir böylece istemci eklemek gerekir. Muhtemelen ad parametreyi değiştirmek gerekir.

$service = new SoapClient("http://localhost:16840/CTI.ConfigStack.WS/ATeamService.asmx?WSDL");
//                        Namespace               Header Name          value   must-understand
$header = new SoapHeader('http://tempuri.org/', 'AuthorisationHeader', $value, false);
$service->__setSoapHeaders(array($header));   

$service->AddPendingUsers($users, 3); // Example

Daha fazla bilgi için here