2012-12-04 1 views
1

Savon을 사용하여 SOAP 헤더에 API 키 요소를 추가하려고하지만 잃어버린 전투에 맞서고 있습니다. 나는 Ruby에 상당히 익숙하다. 그리고 내가 아는 작은 것은 스스로 가르친다. API 문서에 따르면 다음과 같이 추가해야합니다. 이 ProductServe 함수는 인증 요소를 (SOAP 헤더) 반환하며 모든 단일 요청과 함께 보내야합니다.Ruby Savon이 SOAP 헤더 요소를 설정했습니다.

매개 변수

Required Name  Type Description        Min Occurs Max Occurs 
No  sToken string Unique token to identify visitor.  0   1 
Yes  sApiKey string User specific key to authenticate user. 1   1 

http://wiki.affiliatewindow.com/index.php/UserAuthentication

나는 내가하고 싶은 것을 비슷하게 아무것도 찾을 관리하지 않은이 내가 시도하는 코드입니다 :

endpoint = "http://v3.core.com.productserve.com/ProductServeService.wsdl" 
client = Savon.client 

response = client.request :urn, "getCategory" do 
    soap.endpoint = endpoint 
    soap.header = { 
    "urn:sApiKey" => "xxxx" 
    } 
end 

어떤 도움 대단히 감사하겠습니다!

client = Savon::Client.new do 
    wsdl.document = endpoint 
    wsdl.element_form_default = :unqualified 
end 

내가 그 변경을하고 나머지 코드가 유효한 SOAP 응답을 반환 : 당신이 당신의 Savon 클라이언트를 구성 할 필요가 같은

+0

에서 cribbed 것은 예를 들어 요청을하시기 바랍니다 (당신은 그것을 위해 soapUI를 사용할 수 있습니다) 또는 요점 또는 pastie으로 WSDL을 제공합니다. – rubiii

+0

나는이 점이 @LazyMonkey로 간다. – rubiii

+0

"Savon :: Client # 요청에는 적어도 하나의 인수가 필요하지만 코드가있다." response = client.request : urn, " getProductList "할 soap.endpoint = 엔드 포인트 soap.header = {"sApiKey "=>"테스트 "} 끝 나는 그것을보고는 시킴으로 빨리 문제와 관련이없는, 그러나 나는 새로운 질문을 저장하려고 거라고하지만 알고 당신이 여기에 이미 응답했기 때문에 :) – skeniver

답변