으로 전체 xml 메시지를 전달하는 방법 (현재 마스터 분기는 https://github.com/savonrb/savon입니다.) ,Savon v3.x - Savon 버전 3.x를 사용하여
해시에서operation.body = {
Search: {
accountID: 23,
accountStatus: 'closed'
}
}
response = operation.call
은 savon가 전체 SOAP 메시지 XML (봉투, 헤더를 생성합니다
는 현재 당신이 해시, 전으로 메시지의 본문을 정의 savon 3의 비누 요청을 생성합니다 etc ..) 그리고 그 메시지를 HttpClient에 전달하여 요청을 비누 끝점에 게시하십시오. '= my_xml_request_message ..... 더 많이 중첩 된 노드, 네임 스페이스를 대신 해시의
, 난 내 요청, 전으로 완전한 XML 메시지를 전달 할 수 있도록하고 싶습니다 등 속성의 톤 ..... '
이 body
이 비누 요청을 만들 build
로 전송 한 다음 call
게시 한 것 같습니다 :,536,https://github.com/savonrb/savon/blob/master/lib/savon/operation.rb#L79
def call
raw_response = @http.post(endpoint, http_headers, build)
Response.new(raw_response)
end
그래서 나는 원숭이 패치를 생각하고 있었습니까? call
은 내 XML 블록, 전으로 build
을 대체 할 수 있도록 :
def call
raw_response = @http.post(endpoint, http_headers, my_xml_request_message)
Response.new(raw_response)
end
우리가 갇히지있어 어디 그 - 내 XML을 만들거나 제대로 게시지고 있다면 나에게 분명하지 않다. 또는 이것이 올바른 방법 일 경우 ...
사전 도움에 감사드립니다!
그래서 우리는 Savon에> 작업을 호출() 메소드를 재정 의하여 원숭이 패치를 내놓았다 raw_xml_message 데프 메시지 = (raw_xml_message 전화 = 0!?raw_xml_message : 빌드) 이 raw_response = @ http.post (엔드 포인트, HTTP_HEADERS, 메시지) Response.new (raw_response) 끝 끝 우리는 새로운 방법을 포함하고 있습니다 end''데프 우리의 프레임 워크에 raw_xml_message' 'def body '에 대한 것을 정의하고 싶지 않은 경우. – solidlight
이 패치를 Savon 3 master에 추가해야합니까? 아니면 더 나은 해결책이 있습니까? – solidlight