1

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 では、プログラムが Cookie を使用できるようにする session_maintain_property と呼ばれるものが使用されます。PHP で同じことを行うにはどうすればよいですか?

4

1 に答える 1

1

問題は解決しました。問題は SoapClient にありました。リクエストを送信したときに、呼び出しごとに新しい SoapClient を作成し、呼び出しごとに異なる Cookie を作成しました。これは、異なるセッションのようなものです。

基本的に、soap 呼び出しを 1 回だけ定義する必要があります。

$client = new SoapClient(null, array(
'location' => $location_URL,
'uri'      => "",
'trace'    => 1,
));

残りの呼び出しには同じクライアントを使用します。

于 2013-06-30T06:41:00.970 に答える