我需要在PHP调用中使用cookie,目前我正在使用以下请求:
$publish_Data ='<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<publishData xmlns="http://www.birst.com/">
<token>'.$login_token.'</token>
<spaceID>'.$space_id.'</spaceID>
<date>'.$date.'</date>
</publishData>
</soap:Body>
</soap:Envelope>';
$location_URL = "https://app2104.bws.birst.com/CommandWebService.asmx?wsdl";
$action_URL = "http://www.birst.com/publishData";
$client = new SoapClient(null, array(
'location' => $location_URL,
'uri' => "",
'trace' => 1,
));
try{
$publish_data_response = $client->__doRequest($publish_Data,$location_URL,$action_URL,1);
//Get response from here
//print_r($publish_data_response);
}catch (SoapFault $exception){
var_dump(get_class($exception));
var_dump($exception);
}
我需要以某种方式在接下来的呼叫中按顺序启用和使用cookie。 我尝试使用
sessions_start()
但它没有帮助 - 在Java中,使用了一个名为session_maintain_property的东西,允许程序使用cookie,我如何在PHP中做同样的事情?
答案 0 :(得分:1)
问题解决了。 问题在于SoapClient,当我发送请求时,我为每个呼叫创建了一个新的SoapClient,并且每个呼叫给了我一个不同的cookie - 一种不同的会话。
基本上你只需要定义一次soap调用:
$client = new SoapClient(null, array(
'location' => $location_URL,
'uri' => "",
'trace' => 1,
));
并使用相同的客户端进行其余的调用。