2017-12-06 6 views
3

年前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; 
+0

私はperlについて知らないけど、node-soapを使っているときに間違ったcontent-typeを取得してしまい、手作業でSOAPリクエストを構築する必要がありました。悲惨なことに、SOAPはすべての言語で同じ方法で処理されるわけではなく、一部のモジュールで期待されるものは他の言語のモジュールでは提供できません。究極の長期的な解決策:RESTを使用してください。 –

答えて

0

私は、文字列をエンコードするためにMIME :: Base64がを使用して終了し、クライアントがSOAP応答がタイプ文字列を示すために続けていても、BASE64と応答文字列をデコードするであろうと、このような応答をfinagled。私のための作品 - この非常に特定のアプリケーションに十分です。

そうでなければ、perlにレスポンスのエンコードを強制する方法が見つかりませんでした。

関連する問題