年前Windows Server 2000上で動作するいくつかのPerl SOAP :: Transport :: HTMLサーバーを作成しました。サービスの戻り文字列には、その文字列をbase64として自動的にエンコードし、クライアントがそれを処理しました。Perl SOAPサーバーがbase64を返さないようにしました
最近、スクリプトはServer 2008とPerl 5.22.1を実行しているマシンに移動されました。戻り文字列にこのような文字が含まれている場合を除いて、サービスは正常に動作します。文字列はエンコードされず、SOAPエンベロープはクライアントの空に戻ります。
戻り値の文字列をbase64にするにはどうすればよいですか?もちろん、MIME :: base64を使用して文字列をエンコードすることはできますが、SOAPエンベロープはタイプ・テキストを示し、クライアント側で正しく変換されません。
use SOAP::Transport::HTTP;
SOAP::Transport::HTTP::CGI
-> dispatch_to('MyMod')
-> handle;
私はperlについて知らないけど、node-soapを使っているときに間違ったcontent-typeを取得してしまい、手作業でSOAPリクエストを構築する必要がありました。悲惨なことに、SOAPはすべての言語で同じ方法で処理されるわけではなく、一部のモジュールで期待されるものは他の言語のモジュールでは提供できません。究極の長期的な解決策:RESTを使用してください。 –