2012-04-19 2 views
1

영국의 우편 번호 조회에 QAS 웹 서비스를 사용하려고합니다. 요청 XML을 게시 할 때 "서버가 HTTP 헤더 SOAPAction : DoSearch의 값을 인식하지 못했습니다."라고 표시됩니다.타사 웹 서비스에서 응답을받을 수 없습니다.

mMethod.setRequestHeader ("SOAPAction", "/ DoSearch")를 제거 할 때; 내 SOAPClient에서받은 오류는 입니다. 유효한 조치 매개 변수없이 요청을 처리 할 수 ​​없습니다. 유효한 비누 조치를하십시오.

WSDL에 대한 링크는 다음과 같습니다 https://ws.ondemand.qas.com/ProOnDemand/V3/ProOnDemandService.asmx?WSDL

나는 promlem 내가 헤더의 액션 매개 변수를 설정 할 수 없다는 오전 추측,하지만 난 이렇게하는 방법에 대한 단서를 가지고 있겠지,하고 나는 붙어있는 종류. 도와주세요.

내가 게시하려고 요청 XML은 다음과 같습니다

이 이렇게 늦게, 난 단지 당신의 질문을 본 적이되어 죄송합니다
<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope 
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:qas="http://www.qas.com/OnDemand_2011-03"> 
<soap:Header> 
<qas:QAAuthentication> 
<qas:Username>username</qas:Username> 
<qas:Password>password</qas:Password> 
</qas:QAAuthentication> 
</soap:Header> 
<soap:Body> 
<QASearch RequestTag="Single Line postcode search" 
xmlns:web="http://www.qas.com/OnDemand_2011_03"> 
<web:Country>GBR</web:Country> 
<web:Engine Flatten="true ">Singleline</web:Engine> 
<web:Layout>QADefault</web:Layout> 
<web:Search>B168JR</web:Search> 
</QASearch> 
</soap:Body> 
</soap:Envelope> 
+1

WSDL에 대한 링크를 제공 할 수 있습니까? – Michael

+0

나는 그것이 생성 된 클라이언트 클래스 파일들 때문이라고 생각한다. 나는 그들을 다시 생성하고 시도하는 것이 좋습니다. – kosa

+0

죄송합니다. WSDL에 대한 링크는 다음과 같습니다. https://ws.ondemand.qas.com/ProOnDemand/V3/ProOnDemandService.asmx?WSDL –

답변

3

- 나는 확실히 당신이 지금하기 전에이 작업을 분류 할 수 있었다 희망 !

자동화 된 도구를 사용하여 WSDL에서 요청을 만들거나 수동으로 만들었습니까? 요청 구조가 변경되면 요청을 허용해야하는 몇 가지 문제가 있습니다.

는 유사한 구조를 이용해야하는 작업을 효율적으로 활용하려면 다음

내가 변경 한 몇 가지가 있습니다
<soap:Envelope 
     xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
     xmlns:qas="http://www.qas.com/OnDemand-2011-03"> 
<soap:Header> 
<qas:QAQueryHeader> 
    <qas:QAAuthentication> 
     <qas:Username>username</qas:Username> 
     <qas:Password>password</qas:Password> 
    </qas:QAAuthentication> 
</qas:QAQueryHeader> 
</soap:Header> 
<soap:Body> 
    <qas:QASearch> 
     <qas:Country>GBR</qas:Country> 
     <qas:Engine Flatten="true ">Singleline</qas:Engine> 
     <qas:Layout>QADefault</qas:Layout> 
     <qas:Search>B168JR</qas:Search> 
    </qas:QASearch> 
</soap:Body> 
</soap:Envelope> 

.

  • qas : QAQueryHeader가 헤더에 추가되었습니다. 이것은 QAS OnDemand 서비스에 필요합니다.
  • 수정하여 네임 스페이스 (대시에 밑줄) :
    • 전 : XMLNS : QAS = "http://www.qas.com/OnDemand _ 2011-03"후
    • : XMLNS : QAS = "http://www.qas.com/OnDemand - 2011-03"
  • QASearch에 대한 별도의 네임 스페이스 가져 오기를 단순화하기 위해 제거하고 요청 깔끔.
관련 문제