简体   繁体   English

PHP使用SOAP客户端发送SOAP请求

[英]PHP sending SOAP request with SOAP client

It's my first time with SOAP, I already read all manuals and still stacked with the following example: 这是我第一次使用SOAP,我已经阅读了所有手册,并且仍然包含以下示例:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"   
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap:Header>
    <AuthenticationInfo xmlns="https://blabla.com/ws/Quoting">
      <strUserName>[username]</strUserName>
       <strPassword>[password]</strPassword>
   </AuthenticationInfo>
 </soap:Header>
 <soap:Body>
    <GetQuotes xmlns="https://blabla.com/ws/Quoting">
      <CallerClientID>0</CallerClientID>
          <quoteRequest>
            <CapacityCode>2</CapacityCode>
           <BabiesCount>0</BabiesCount>
           <QuotingOptions>0</QuotingOptions>
         </quoteRequest>
      <clientIDs>
        <int>20295</int>
      </clientIDs>
      <withUrlParam>false</withUrlParam>
    </GetQuotes>
  </soap:Body>
</soap:Envelope>

I do not understand how to start the soapclient with authorization, please help. 我不了解如何使用授权启动soapclient,请提供帮助。

You need to use SoapHeader . 您需要使用SoapHeader Below is the example. 以下是示例。

$ns = 'https://blabla.com/ws/Quoting'; //Namespace of the WS. 

//Body of the Soap Header. 
$headerbody = array('strUserName' => $someUser, 
                    'strPassword' => $somePass); 

//Create Soap Header.        
$header = new SOAPHeader($ns, 'AuthenticationInfo', $headerbody);        

//set the Headers of Soap Client. 
$soap_client->__setSoapHeaders($header); 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM