2012-04-25 1 views
1

클라이언트 SOAP 요청은 올바르게 형식이 지정된 HTTP 헤더와 올바른 형식의 XML SOAP 내용을 TCP/IP 소켓 연결을 통해 웹 서비스 서버에 보내고 기다리는 것입니다. 응답을 구문 분석하고 파싱 하시겠습니까?SOAP 및 HTTP 기본 정보에 대한 쿼리

'단순한'것일까, 아니면 더 많은 일이 발생 했나요?

여러 개의 WSDL 파일에 대해 gSOAP을 C++로 사용하는 데 어려움이 있기 때문에 처음부터 클라이언트 작성을 고려하고 있습니다.

답변

2

SOAP는 TCP, HTTP, SMTP 등의 전송 프로토콜에서 가장 많이 사용되는 HTTP를 통해 사용할 수 있습니다.

HTTP를 통한 SOAP은 기본적으로 SOAP 봉투가 포함 된 유효한 POST HTTP 요청으로 변환됩니다. 여기에서 브라우저의 클래식 POST에 대해 이야기 할 경우 양식 매개 변수가 있어야합니다. 응답 본문에는 SOAP 봉투가 포함되어 있습니다. 여기서 HTML은 브라우저의 요청에 대한 응답으로 기대됩니다.

당신은 단지 (SOAP 1.2 SOAP 1.1 및 application/soap+xml에 대한 text/xml) 사용하는 SOAP 버전에 대한 적절한 콘텐츠 형식을 사용하고 (SOAP 1.1) 필요한 경우 어쩌면 SOAPAction 헤더를 지정해야하지만이 같이 관하여 HTTP 통신이 중요합니다.

그런 다음 SOAP 메시지를 사용하도록 요청 (HTTP 요청 또는 응답 클라이언트의 서버)이되어야하지만 이는 HTTP와 더 이상 관련이 없습니다. HTTP는 여기에 메시지를 받았습니다. .

+0

이 답변에 많은 감사드립니다. 따라서 SOAP 요청을 올바르게 만들고 HTTP 헤더를 올바르게 포맷한다고 가정하면 포트 80의 TCP 소켓을 통해 내 서버에 연결하고 내 패킷을 쓸 수 있습니까? 이것은 HTTP가 실제로 무엇입니까? 나는 항상 TCP/IP 소켓을 사용하지만 이전에는 아무것도하지 않았다. – mathematician1975

+0

@ mathematician1975 : [HTTP] (http://www.ietf.org/rfc/rfc2616.txt)는 [응용 프로그램 계층] (http://en.wikipedia.org/wiki/Internet_protocol_suite) 프로토콜입니다. HTTP 통신은 일반적으로 기본 포트 80에서 TCP/IP 연결을 통해 이루어 지므로 기본적으로 HTTP 표준의 규칙에 따라 형식화 된 요청을 보내면 작동합니다. 나는 gsoap에 익숙하지 않지만 gsoap으로 생성 된 프록시는 HTTP를 직접 지원해야 개발자가 쉽게 (낮은 수준에서 작업 할 필요없이) 만들 수 있습니다. – Bogdan

+0

감사합니다. – mathematician1975