2017-12-06 3 views
3

몇 년 전 필자는 Windows Server 2000에서 실행되는 몇 가지 Perl SOAP :: Transport :: HTML 서버를 작성했습니다. 해당 컴퓨터에서 서비스의 리턴 문자열에 soap envelope, 이 문자열을 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 응답 유형 문자열을 표시하기 위해 계속하더라도 64 기수로 응답 문자열을 디코딩 할 있도록 응답을 finagled. 나를위한 작품 -이 매우 구체적인 응용 프로그램에 충분합니다.

그렇지 않으면 강제로 perl로 응답을 인코딩하는 방법을 찾을 수 없습니다.

관련 문제