0

目標: シンプルな WCF4 サービスを利用すること。WCF は 2 つのパラメーター、DateStart と DateEnd を yyyy-MM-dd として受け取ります。返された結果には、それぞれ約 16 個のプロパティ値を持つオブジェクトが含まれている必要があります。WCF サービスはセットアップされ、他のユーザーによって管理されています。彼は、ワイヤーの反対側からテストするための C# テスト ユーティリティを作成したので、すべてが正しく機能していることを保証してくれます。(つまり、私のような外部クライアント呼び出しをシミュレートします)。以下の日付範囲を使用して、彼は約 1400 個のオブジェクトを取得します。

問題: SOAP 呼び出しは、私が見る限りエラーなしで終了します。WSDL で__getFunctions()を呼び出すことができるので、通信が機能しているように見えます。ただし、呼び出しは非常に迅速に終了します。あまりにも早く、クエリに何か問題があることがわかります。結果のサイズは約 1 ~ 2 MB になります。しかし、私の結果オブジェクトは空のようです。彼の結果オブジェクトには 1400 個のオブジェクトが含まれています。ブラウザは終了ステータス 200 を報告します。したがって、接続エラーはありません。

質問:クエリを正しく実行しているか、結果を正しく読んでいるか、それともまったく別のことを行う必要があるか? 私は初心者の PHP プログラマーではありませんが、決して専門家ではありません。SOAP、WSDL、および WCF を使用するのはこれが初めてです。私はこれをほぼ3日間調査しました。SO と Google は常に回答を提供してきました。これを行う方法のさまざまな例を見つけましたが、非常に簡単に思えます。それでも、私は何かが欠けているに違いありません。私は疲れ果てて、機知に富んだ終わりです。これは私を困惑させました。

これが私がやっていることです: テストのために、私はまだファイルに書き込んでいません。テストするためにvar_dump()を実行するだけです。これは、__getFunctions()呼び出しから結果を取得するためにうまく機能します。しかし、実際の WSDL 関数呼び出しでは機能しないようです。私はここで何をすべきですか?SOAPUI もダウンロードしようとしていますが、ダウンロードがドロップし続けます。そこで何が起こっているのかわからない。コード:

define('NEWLINE', "<br />\n");
define('DUMPFILE','/wcf.xml');

// SOAP client
ini_set('soap.wsdl_cache_enabled', '1'); 
//ini_set('soap.wsdl_cache_ttl', '0'); 

$wsdl = $url.'?wsdl';

$soapClient = new SoapClient($wsdl, array('cache_wsdl' =>   WSDL_CACHE_NONE,'keep_alive'=>1));

var_dump($soapClient->__getFunctions()); 
// SOAP call
////DATE FORMAT yyyy-MM-dd
$args->DateStart    = "2013-03-28";
$args->DateEnd  = "2013-03-29";
try
{
    $result = $soapClient->GetScheduleData($args);
}
catch (SoapFault $fault)
{
    echo "Fault code: {$fault->faultcode}" . NEWLINE;
    echo "Fault string: {$fault->faultstring}" . NEWLINE;
    if ($soapClient != null){
        $soapClient = null;
    }
    exit();
}
$soapClient = null;

var_dump($result);
//file_put_contents(DUMPFILE,$result);
4

0 に答える 0