我刚刚开始使用肥皂对象并遇到了有趣的情况。
<?php
ini_set('soap.wsdl_cache_enabled',0);
ini_set('soap.wsdl_cache_ttl',0);
try
{
$exampleService = new SoapClient("http://www.blabla.com/service/service.asmx?WSDL",array("trace"=>true));
$response = $exampleService->SetCategory(array("Name"=>"lorem-ipsum","Code"=>"lorem","MainCategory"=>0,"Visible"=>"Lorem Ipsum"));
var_dump($response);
}
catch (Exception $exc)
{
echo "Soap Error: " . $exc->getMessage();
var_dump($exampleService->__getLastResponse());
}
此代码添加类别。但如果我在授权之前发送此请求,则会显示“未识别用户”或类似内容。
然后我试了这个
<?php
ini_set('soap.wsdl_cache_enabled',0);
ini_set('soap.wsdl_cache_ttl',0);
try
{
$exampleService = new SoapClient("http://www.blabla.com/service/service.asmx?WSDL",array("trace"=>true));
$authdata = array("Auth_Code"=>"***","username"=>"***","password"=>"***");
$response = $exampleService->Auth($authdata);
$response = $exampleService->SetCategory(array("Name"=>"lorem-ipsum","Code"=>"lorem","MainCategory"=>0,"Visible"=>"Lorem Ipsum"));
var_dump($response);
}
catch (Exception $exc)
{
echo "Soap Error: " . $exc->getMessage();
var_dump($exampleService->__getLastResponse());
}
成功地工作并添加了类别。
这是棘手的部分;然后我继续在项目上工作,幸运的是再次发送第一个请求(没有任何身份验证数据),它也有效。但我没有发送/设置任何用户名/密码。
soap服务器如何识别我(我的服务器)?浏览器COOKIE有逻辑吗?我打印$ exampleService-&gt; __ cookie及其NULL?
请赐教。我希望blabla.com不会识别用户基于ip的信息:)