php soapclient with wsse - Joey's blog - 博客园
代码
<?php
class WebServiceClient extends SoapClient
{
    
public $username;
    
public $password;
    
public $fileContent;
    
public $fileName;
    
public $fileType;
    
    
public function __doRequest($request, $location, $action, $version, $one_way = 0)
    {
        
$request =
  
'<?xml version="1.0" encoding="utf-8"?>
  <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://com.clarkston.cts.webservice.source.event/IEventUploadWSv1.wsdl" xmlns:types="http://com.clarkston.cts.webservice.source.event/IEventUploadWSv1.wsdl/encodedTypes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <soap:Header>
      <wsse:Security>
        <wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="SecurityToken-8c17c5b1-3c45-4eba-bae6-024642866e12">
          <wsse:Username>
'.$this->username.'</wsse:Username>
          <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">
'.$this->password.'</wsse:Password>
        </wsse:UsernameToken>
      </wsse:Security>
    </soap:Header>
    <soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
      <q1:fileUpload xmlns:q1="urn:com-clarkston-cts-webservice-source-event-IEventUploadWSv1">
        <param0 href="#fur" />
      </q1:fileUpload>
      <q2:com_clarkston_cts_webservice_source_event_FileUploadRequest id="fur" xsi:type="q2:com_clarkston_cts_webservice_source_event_FileUploadRequest" xmlns:q2="http://com.clarkston.cts.webservice.source.event/IEventUploadWSv1.xsd">
        <fileContent xsi:type="xsd:base64Binary">
'.base64_encode($this->fileContent).'</fileContent>
        <fileName xsi:type="xsd:string">
'.$this->fileName.'</fileName>
        <fileType xsi:type="xsd:string">
'.$this->fileType.'</fileType>
      </q2:com_clarkston_cts_webservice_source_event_FileUploadRequest>
    </soap:Body>
  </soap:Envelope>
        
';
        
$location = "http://www.clia.demo.livestockid.ca/CLTSDB/EventUploadWSv1?WSDL";
        
return parent::__doRequest($request, $location, $action, $version, $one_way);
    }
}

$client = new WebServiceClient("http://www.clia.demo.livestockid.ca/CLTSDB/EventUploadWSv1?WSDL");
$client->username = "xxx";
$client->password = "xxx";
$client->fileContent = "okey-dokey";
$client->fileName = "alright.csv";
$client->fileType = "1";
echo $client->fileUpload();
?> 


郑重声明:资讯 【php soapclient with wsse - Joey's blog - 博客园】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——