집 >백엔드 개발 >C#.Net 튜토리얼 >C# 비누
SOAP(Simple Access Object Protocol)는 XML 기반 프로토콜로, 다양한 언어로 작성되고 다양한 플랫폼에서 실행되는 애플리케이션이 서로 상호 작용할 수 있는 기능을 제공합니다. HTTP를 통해 작동합니다. SOAP는 경량 언어인 XML을 기반으로 하는 경량 프로토콜입니다. C# SOAP는 작동 중인 플랫폼 및 운영 체제와 독립적이므로 서로 다른 플랫폼에서 작동하는 서로 다른 애플리케이션 간에 데이터를 더 쉽게 교환할 수 있습니다. 통신 애플리케이션이 동일한 언어로 되어 있을 필요가 없기 때문에 느슨하게 결합된 프로토콜입니다.
구문
SOAP 메시지를 정의하는 구문은 다음과 같습니다.
<SOAP : Envelope xmlns : SOAP = "https://www.educba.com/"> <SOAP : Header> </SOAP : Header> <SOAP : Body> <SOAP : Fault> </SOAP : Fault> </SOAP : Body> </SOAP : Envelope>
SOAP 메시지를 정의하는 구문 규칙은 다음과 같습니다.
SOAP 메시지 인코딩은 XML 언어를 사용하여 수행되어야 합니다. SOAP Envelope 네임스페이스를 사용해야 합니다. DTD 참조 및 XML 처리 명령어로 구성되어서는 안 됩니다.
SOAP는 마샬링 및 디마샬링 메커니즘에서 작동합니다. HTTP 프로토콜을 사용하여 SOAP 메시지라는 XML 기반 메시지를 서버에 보내 처리합니다. 이러한 SOAP 메시지에는 처리를 위한 정보가 포함되어 있습니다. 이를 HTTP 요청이라고 부를 수 있으며 정보를 SOAP 메시지로 래핑하는 이 방법을 마샬링이라고 합니다.
이제 서버는 클라이언트로부터 요청을 받아 클라이언트가 보낸 SOAP 메시지를 풀어냅니다. 그런 다음 서버는 요청을 처리하고 SOAP 메시지 형식으로 클라이언트에 적절한 응답을 보냅니다. 정보를 풀어내는 이러한 방법을 디마샬링(Demarshalling)이라고 합니다.
Soap 메시지는 다음 요소로 구성됩니다.
1. SOAP 봉투 요소: 이 요소는 SOAP 메시지의 루트 요소입니다. 특정 XML 문서가 SOAP 메시지임을 알려줍니다. 여기에는 SOAP 메시지의 세부정보가 포함됩니다. 헤더 요소: SOAP 헤더 요소는 SOAP 메시지의 선택적 요소입니다. 그러나 SOAP 메시지에 이 요소가 포함된 경우 이는 루트 Envelope 요소의 첫 번째 하위 요소여야 하며 Header의 하위 요소는 네임스페이스로 정규화되어야 합니다. 이 요소에는 결제 정보, 인증 자격 증명 등과 같은 정보가 포함되어 있습니다. SOAP Body 요소: 이 요소에는 두 끝점 간에 교환될 실제 정보가 포함되어 있습니다. 요청 및 응답 정보를 담고 있습니다.
아래에서 직원 세부 정보가 포함된 SOAP 응답 메시지의 SOAP 본문 요소 예를 찾아보세요.
코드:
<soap : Body> <GetEmployeeDetails> <EmployeeName>John Duffel</EmployeeName> <EmployeeCode>EI66</EmployeeCode> </GetEmployeeDetails> </soap: Body>
2. SOAP 오류 요소: SOAP 메시지가 서버로 전송되면 서버에서 반환된 응답에는 요청 처리 성공 시 요청에 필요한 정보가 포함될 수도 있고 오류 메시지가 포함될 수도 있습니다. 따라서 이 요소에는 오류 관련 정보가 포함됩니다. SOAP 메시지에 이 요소가 포함된 경우 Body 요소의 하위 요소여야 합니다.
Fault 요소의 하위 요소는 다음과 같습니다.
SOAP 메시지 구조를 보여주는 다이어그램을 아래에서 찾아보세요.
배경색이 있는 요소는 SOAP 메시지의 선택 요소입니다.
C#에서 SOAP 웹 서비스를 만드는 데 필요한 단계를 살펴보겠습니다. 단계는 다음과 같습니다.
이 서비스 파일에는 서비스에 대한 코드를 추가하고 예제 섹션의 예제에 표시된 대로 실행할 수 있습니다.
다음은 언급된 예시입니다.
코드:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; namespace WebApplication4 { [WebService(Name ="Sample Web Service")] public class WebService1 : System.Web.Services.WebService { [WebMethod] public string Message() { return "Learning SOAP web service"; } } }
출력:
'메시지'(웹 방식)를 클릭하면 다음과 같은 결과가 출력됩니다.
The SOAP request and response in the above snapshot are as follows:
Code:
POST /WebService1.asmx HTTP/1.1 Host: localhost Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "http://tempuri.org/Message" <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <Message xmlns="http://tempuri.org/" /> </soap:Body> </soap:Envelope>
In the above message, the first element is the Envelope element. Then this message contains the Body element, which provides details of the SOAP message.
Code:
HTTP/1.1 200 OKContent-Type: text/xml; charset=utf-8Content-Length: length <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <MessageResponse xmlns="http://tempuri.org/"> <MessageResult>string</MessageResult> </MessageResponse> </soap:Body> </soap:Envelope>
The first line of this message contains code ‘200’, which indicates a successful response from the server. This message contains an Envelope element and then a Body element containing details of the response from the server. We can see a tag ‘MessageResult’ with a value string, indicating that our Web Method (Message) result will be of a type string.
After clicking on the ‘Invoke’ button in the second snapshot, we will get the final result as shown below:
Output:
SOAP i.e. Simple Object Access Protocol, is a lightweight and loosely coupled protocol that can exchange data between applications written in different programming languages and working on different platforms. It exchanges data in the form of SOAP messages in XML language and works over HTTP protocol.
위 내용은 C# 비누의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!