2

これは私のコードです

 $c = new soapclient('http://www.redbus.in/WS2/BookingService.asmx?wsdl',
     array('authentication' => array('LoginID' => 'x','Password'=>'x')));

  $timezone = new DateTimeZone('UTC');
  $time='2012-04-17T16:50:45';
  $date = new DateTime($time,$timezone);
  $sourceid=array('SourceID'=>'244','DestinationID'=>'477','DateOfJourney' =>$date);
  $stockprice = $c->GetAvailableRoutes($sourceid);

   print_r($stockprint);

日時形式のデータ型変数では機能しません

このようなエラーが表示されます

致命的なエラー: キャッチされない SoapFault 例外: [soap:Client] サーバーは要求を読み取ることができませんでした。---> XML 文書にエラーがあります (2, 252)。---> 文字列 '' は有効な AllXsd 値ではありません。in E:\xampplite\htdocs\index1.php:9 スタック トレース: #0 [内部関数]: SoapClient->__call('GetAvailableRou...', Array) #1 E:\xampplite\htdocs\index1.php( 9): SoapClient->GetAvailableRoutes(Array) #2 {main} が E:\xampplite\htdocs\index1.php 行 9 でスローされました

4

2 に答える 2

11

PHP から SOAP サービスを使用すると、同様の問題が発生しました。次を使用して修正しました:

$date->format('c');

(PHP 5 で追加された ISO 8601 日付は、次のようになります: 2004-02-12T15:19:21+00:00)

于 2013-11-18T21:24:57.343 に答える
1

それをフォーマットする必要があります。そうしないと、DateTime オブジェクトが配列にスローされます (PHP は文字列に変換しようとしますが、これは機能しません)。

例えば:

$date->format('Y.m.d H:i:s');

使用法

$sourceid = array('SourceID'=>'244','DestinationID'=>'477','DateOfJourney' => $date->format('Y.m.d H:i:s'));
于 2012-04-16T10:29:59.073 に答える