SOAPクライアントにさわったメモ

SOAPクライアントにさわったメモ

SOAP::Lite

 型が厳密な時は

  $soap_client->method( SOAP::Data->type(string => $num) );
  $soap_client->method( SOAP::Data->type(long => $num) );

みたいにしないとダメな時もあるのかもしれない。これでしばらく悩んだ。

 ……なんか $soap_client->autotype(undef) とかしたら動くし。

 XML::Parserで落ちるときは

$SOAP::Constants::DO_NOT_USE_XML_PARSER = 1;

とかしてみるといいかもしれない*1

PEAR::SOAP

 型が厳密な時は(ry


  $soap_client->call('method', new SOAP_Value('name', 'long', $num) );
?>

 SOAP::Liteのautotype()に相当する機能は分からなかった*2

NuSOAP

 UTF-8を通すようにするには


  $soap_client->soap_defencoding = 'UTF-8';
  $soap_client->decode_utf8 = FALSE;
?>

とする必要がある。ソースを書き換えるのを推奨している不思議な人々がいるので注意。

 型指定の方法は知らない*3

*1:こうするとSOAP::Lite同梱のXML::Parser::Liteを使うようになる。

*2:setTypeTranslation()かと思ったけど、違うみたい。

*3PEAR::SOAPみたいにnew soapval()かと思ったけど、違うみたい。