【发布时间】:2018-01-24 10:28:23
【问题描述】:
我想用 PHP SOAP 发送和接收数据。但是没有 .wsdl 链接 我正在尝试使用 .svc 链接发送它,但它给出了“auth”错误。
我如何用 PHP soap 写这个?
<system.serviceModel>
<bindings>
<customBinding >
<!--CDM Servis için Binding Ayarı -->
<binding name="CustomClientEArsivServicesBinding">
<textMessageEncoding maxReadPoolSize="2147483647" maxWritePoolSize="2147483647"
messageVersion="Soap11" />
<httpsTransport maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647"
maxBufferSize="2147483647" />
</binding>
</customBinding>
</bindings>
<client>
<!--CDM Servis için Endpoint Ayarı -->
<endpoint address="https://xxxxxxxxx/ ClientEArsivServicesPort.svc" binding="customBinding"
bindingConfiguration="Custom ClientEArsivServicesPortBinding" contract="FITOEServices. ClientEArsivServicesPort"
name="ClientEArsivServicesPort" />
</client>
HTTP 基本认证
我写的代码 但我收到“未经授权”错误
<?php
header('Content-type: text/html; charset=utf-8');
ini_set("soap.wsdl_cache_enabled", "0");
class JaxWsSoapClient extends SoapClient
{
public function __call($method, $arguments){
$response = parent::__call($method, $arguments);
return $response->return;
}
}
try {
$client = new JaxWsSoapClient("http://xxxxxx.com/EArchiveInvoiceService.wsdl",
array("trace" => 1,
"location" =>"https:/xxxxxx.fitbulut.com/ClientEArsivServicesPort.svc",
"uri" =>"http://xxxxxx/namespace/",
"username" => "xxxxxxx",
"password" => "G#xxxxx"
));
$result = $client->getInvoiceDocument('xxxx');
echo"<br/>Dumping request headers:<br/>".$client->__getLastRequestHeaders();
echo("<br/>Dumping request:<br/>".$client->__getLastRequest());
echo("<br/>Dumping response headers:<br/>".$client->__getLastResponseHeaders());
echo("<br/>Dumping response:<br/>".$client->__getLastResponse());
echo("<br/>Returning value of __soapCall() call: ");
var_dump($result->resultDataMap);
}catch(SoapFault $exception)
{
print_r("Got issue:<br/>") ;
echo '<pre>';
print_r($exception);
echo '</pre>';
}
?>
【问题讨论】:
-
基本 AUTH .NET 代码头