2014-01-22 3 views
0

저는 SOAP과 XML에 매우 익숙합니다. :: 컴파일 및 응답을 처리하는 방법에 대한 많은 설명없이 SOAP 호출로 끝낼 수있는 대부분의 예제 .XML :: Compile :: SOAP - 응답을 해시로 변환

SOAP 응답을 해시로 변환하는 쉬운 방법이 있습니까? 여기

내 코드

....

my ($response, $trace) = $call->($request); 
my $content=$trace->response->decoded_content(); 
my $out=XML::Hash->new()->fromXMLStringtoHash($content) 

하지만 난 다음 오류 받고 있어요 :

정크 선 4에서 문서 요소, 열 0 바이트 11,177에서 후/usr/lib/perl5

서버에서 반환 된 것을 살펴보십시오.

< 비누 : 봉투 .....

ba8

... </비누 : 봉투>

0

나는 'ba8가'얼마나 잘 모르겠어요 응답을 한 번 제거하면 완전하고 유효한 응답처럼 보입니다.

답변

0

SOAP 응답은 해시이어야합니다. trace는 HTTP 요청 및/또는 응답을 얻을 수있게 해주는 객체이지만 디버깅 할 때를 제외하고는 보지 않아도됩니다.

use Data::Dumper; 

... 
print Dumper $response; 
+0

$ 응답이 비어 있습니다. 비누 응답이 완전한 XML이 아니기 때문일 수 있습니다. - 나는 ba8 또는 1ff8을 보았습니다. 그렇지 않으면 추적에서 올바른 응답이 아닌 것을 보았습니다. 응답에 인코딩 문제가 있습니다. 왜냐하면 그 라인이 있어야 할 이유가 없기 때문입니다. – user2607648

+0

또한 HHTP 응답의 추적을보고 --Client-Transfer-Encoding : 모든 이상한 라인이 일정한 빈도로오고 있음을 인코딩 문제라고 알려주는 chunked – user2607648

0

문제가 인터넷에서 알려진 버그 : HTTP와 것을 밝혀 - 나는 LWP :: 해당 UserAgent와 함께 최신 버전으로 업그레이드 한 후 모든 것이 지금 잘 작동 [단지 경우] .

관련 문제