[PHP-users 17994]Re: SOAPの使い方。
Seiji Masugata
s.masugata @ digicom.dnp.co.jp
2003年 9月 20日 (土) 15:10:05 JST
桝形です。
この手の話題、長引かせてすみません。
補足と追加です。
> > せめて、foreachのワーニングくらいなんとかしてほしい。。。
> > って感じでした。
> >
> > そういえば、デフォルトが、ISO-8859-1(のはず)だったのでマルチ
> > バイトを渡す時は、渡すデータに応じたエンコーディングを定義
> > するようにして下さい。
> >
> > 自分は面倒だったので、
> >
> > // var $soap_defencoding = 'ISO-8859-1';
> >
> > var $soap_defencoding = 'Shift_JIS';
> >
> > てな感じで、ライブラリ内部を直接変更しました。
上記を変更した時に一緒に、
// var $charset_encoding = 'UTF-8';
var $charset_encoding = 'Shift_JIS';
// if(eregi('^(ISO-8859-1|US-ASCII|UTF-8)$',$enc)){
if(eregi('^(ISO-8859-1|US-ASCII|UTF-8|Shift_JIS)$',$enc)){
と、したのを忘れてました。。。はまってたらすみません。
恐らく、EUC-JPとかも同じ手順でいけそうな気も。。。試してはいませんけど。
後、一律fsockopenを@fsockopenに。。。警告がうるさかったんで、つい。
で、最近改変したのが、SSL通信時に、curl経由でアクセスしているのですが
署名書が正しくインストールされてなかったりしていた場合等に、警告の
ポップアップがでますよね?
そういうケースの場合はSSL通信に失敗するので通信ができません。
なので、
function sendHTTPS
内のcurlのオプションをセットしている部分に対して、
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER,FALSE);
一行追加。これで一応通信はできます。微妙な感じもしますが。
参考にしたURL
http://curl.haxx.se/docs/sslcerts.html
というか、ライブラリをどんどん変更していってどうするんだ。。。
って感じもしなくもないのですが。
> >
> > 後、SOAP ServerがJava等の場合は、渡すデータ型にも注意した
> > 方がよいです。
>
> 追加で一点。
>
> 結果にマルチバイトが戻ってくる場合、そのエンコーディングにも
> 注意した方がよいです。
>
> 可能であれば、入力・内部・出力エンコーディングはSOAP Serverの
> エンコーディングに合わせた方がよいかも。
>
> 全然考慮してくれないJava屋さんにかなり苦しめられました。
>
> しばらくは、JavaのExceptionを見たくない。。。というかException
> くらい、そのまま返さないでハンドリングしてほしい。
--
Seiji Masugata<s.masugata @ digicom.dnp.co.jp>
PHP-users メーリングリストの案内