C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: 配列を取得する方法を教えてください


(過去ログ 14 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■4006 / inTopicNo.1)  配列を取得する方法を教えてください
  
□投稿者/ りお (3回)-(2007/05/31(Thu) 16:34:37)

分類:[C# (Windows)] 

お世話になります。

http://www.phppro.jp/phptips/archives/vol33/#2
 を参考に動作確認しています。

●phpソース(上記サイトのコードを引用)
<?php
require_once('SOAP/Server.php');

function showDatetime($str){
$result = $str." ".date("Y-m-d");
return $result; ←―――――――――――――(1)配列に返したい!!
}

$server = new SOAP_Server();
$server->addToMap(
'showDatetime',
array('inputString' => 'string'),
array('outputString' => 'string')
);

if (isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD']=='POST') {
$server->service($HTTP_RAW_POST_DATA);
} else {
require_once 'SOAP/Disco.php';
$disco = new SOAP_DISCO_Server($server,'showDatetime');
header("Content-type: text/xml");
if (isset($_SERVER['QUERY_STRING']) && strcasecmp($_SERVER['QUERY_STRING'],'wsdl')==0) {
echo $disco->getWSDL();
} else {
echo $disco->getDISCO();
}
exit;
}
?>

●C#ソース
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;

namespace test
{
class Program
{
static void Main(string[] args)
{
try
{
//Webサービスの戻り値
string strDATE;

//Webサービスのインスタンス
localhost1.showDatetimeService wsMyService = new localhost1.showDatetimeService();

//Webサービスの呼び出し
strDATE = wsMyService.showDatetime("");

//結果の表示
Console.WriteLine("テスト結果:" + strDATE);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}

●実行結果*********************************
テスト結果: 2007-05-31
続行するには何かキーを押してください . . .
*******************************************

上記のように、リターンが文字列の場合、実行結果が正常なことは
確認できました。

ここから質問なのですが、phpから配列を取得する方法が分かりません。

phpソースの(1)部分を下のようにarrayで実行すると・・・
return array('TEST01' => 'aaaaa',
'TEST02' => $result);
●実行結果*********************************
XML ドキュメント (13,61) でエラーが発生しました。
続行するには何かキーを押してください . . .
*******************************************
のようにエラーになってしまいます。

どこがダメなのでしょうか。。
ご教示いただきたく宜しくお願いいたします。
引用返信 編集キー/
■4032 / inTopicNo.2)  Re[1]: 配列を取得する方法を教えてください
□投稿者/ ゴン (2回)-(2007/06/01(Fri) 19:54:39)
No4006 (りお さん) に返信

こんにちは。ゴンです。

りおさんの環境は、サーバ側はPHPでクライアントが.NETですよね?

単純に疑問なんですが、PHPが配列をSOAPメッセージに変換する結果と
.NETが配列をSOAPメッセージに変換する結果って同じなんでしょうか?

根本的にお互いのインターフェイスが違ったら、SOAPメッセージを
直接変換するだけじゃダメな気がするんですが・・・

何も調べないで発言してるので、ウソが混じってたらゴメンナサイ。
引用返信 編集キー/
■4379 / inTopicNo.3)  Re[2]: 配列を取得する方法を教えてください
□投稿者/ りお (4回)-(2007/06/15(Fri) 09:43:41)
ゴンさん

早速お返事頂いており、ありがとうございます。
私の返事が遅くなってしまい申し訳ありません。


>りおさんの環境は、サーバ側はPHPでクライアントが.NETですよね?
そうですね。
VS2005(C#)からWEB参照の追加でPHP関数から結果値を取得したいのです。
(環境は、私のパソコンだけですのでサーバー・クライアントとは意識
していないのですが。)


>単純に疑問なんですが、PHPが配列をSOAPメッセージに変換する結果と
>.NETが配列をSOAPメッセージに変換する結果って同じなんでしょうか?
どうなんでしょう、、配列なので同じではないとは思いますが、
結果確認していないので分かりません。
確認方法があればご教示お願いします。

>根本的にお互いのインターフェイスが違ったら、SOAPメッセージを
>直接変換するだけじゃダメな気がするんですが・・・
そうですね。根本的にダメな気はするのですが、何がダメなのか
良く分からなくて困っています。

>何も調べないで発言してるので、ウソが混じってたらゴメンナサイ。
故意にウソつかれていたら悲しいですが、、
気になさってくださり、ありがとうございます(^^ヾ

引き続き調べていても中々、情報が見つかりません。
PHPから配列を取得する方法につきまして、何かしら情報が
ございましたら、ご教示頂きたく宜しくお願いします。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -