人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

◆早期解決で 1500point差し上げます!

PerlでのSOAP送信について教えてください。下記?はWSDLの抜粋コードです

名前aFという所にacTで指定されているように、
2つの値を送信する必要があるのですが、
WSDLで配列を処理するコードが書かれていない為、送信方法がわかりません

$array = SOAP::Data->type(array => ['string','string']);
これだと配列を投げてしまう為、SOAP Faultが返されます。

sIAの名前属性で飛ばされる先のsIATは配列処理がされているため、
わざとこのaFのみ、配列処理がされてないようです。

この場合、どうやって処理したら宜しいでしょうか。

print SOAP::Lite->service($wsdl)->submit(●,'sI値','sIA値');

--WSDL抜粋
<xsd:complexType name=sRT>
<xsd:sequence>
<xsd:element name=aF type=tns:acT />
<xsd:element name=sI type=xsd:string />
<xsd:element name=sIA type=tns:sIAT />
</xsd:sequence>
</xsd:complexType>

<xsd:complexType name=acT>
<xsd:sequence>
<xsd:element name=bI type=xsd:string />
<xsd:element name=tI type=xsd:string />
</xsd:sequence>
</xsd:complexType>

●質問者: furure
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:ACT AF LITE Perl print
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● sakura-fuma
●0ポイント

ゴミ箱に捨てる


2 ● shintabo
●5000ポイント ベストアンサー

# service は、あまり使ったことないのですが、、、

SOAP::Lite->service(WSDL)->submit(

SOAP::Data->value([

SOAP::Data->name('bl')->value(1234),

SOAP::Data->name('tl')->value(2345),

]),

'sl値',

'slA値'

);

# で、どーですか??

# ちなみに、SOAP::Lite の WSDL 読み込みは、「.」が入った operation がエラーになったはずなので

SOAP::Lite->new()->('submit', xxxxxx);

# で、やってみてはいかがでしょうか?

◎質問者からの返答

丁寧な回答ありがとうございます!

ただ、教えて頂いたものだと、[ ]でくくるため、配列になりませんか?

サービス先は技術的な回答はしてくれないのですが、(SOAP::Liteについては詳細不明とのこと)

送信方法がわかっていない部分のSOAP送信サンプルをもらえました。

<aF xsi:type="ns1:acT">

<bI xsi:type="xsd:string">sample req</bI>

<tI xsi:type="xsd:string">sample req</tI>

</aF>

aFの中にbIとtIを置いて、aFではtype としてacTを指定しないといけないようです。。

※サービスからの回答でaFは配列ではないことも念を押されました。

ポイント数アップしますのでお忙しいところ申し訳ございませんが、

ご協力お願いできますでしょうか。。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ