>  기사  >  백엔드 개발  >  C# 비누

C# 비누

WBOY
WBOY원래의
2024-09-03 15:18:261161검색

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 처리 명령어로 구성되어서는 안 됩니다.

C#에서 SOAP는 어떻게 작동하나요?

SOAP는 마샬링 및 디마샬링 메커니즘에서 작동합니다. HTTP 프로토콜을 사용하여 SOAP 메시지라는 XML 기반 메시지를 서버에 보내 처리합니다. 이러한 SOAP 메시지에는 처리를 위한 정보가 포함되어 있습니다. 이를 HTTP 요청이라고 부를 수 있으며 정보를 SOAP 메시지로 래핑하는 이 방법을 마샬링이라고 합니다.

이제 서버는 클라이언트로부터 요청을 받아 클라이언트가 보낸 SOAP 메시지를 풀어냅니다. 그런 다음 서버는 요청을 처리하고 SOAP 메시지 형식으로 클라이언트에 적절한 응답을 보냅니다. 정보를 풀어내는 이러한 방법을 디마샬링(Demarshalling)이라고 합니다.

C# 비누

SOAP 메시지의 요소

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 메시지 구조를 보여주는 다이어그램을 아래에서 찾아보세요.

C# 비누

배경색이 있는 요소는 SOAP 메시지의 선택 요소입니다.

C#에서 SOAP 웹 서비스를 만드는 데 필요한 단계를 살펴보겠습니다. 단계는 다음과 같습니다.

  • Visual Studio에서 파일 -> 신규 -> 웹 서비스를 위한 새로운 프로젝트를 생성하는 프로젝트입니다.
  • C# 및 웹 템플릿을 선택하세요. 그 아래에서 ASP.NET 웹 애플리케이션을 선택하세요.
  • 솔루션의 이름과 위치를 지정하세요.
  • 이제 이 프로젝트가 솔루션 탐색기에 나타납니다.
  • 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 버튼으로 클릭한 다음 추가 -> 웹 서비스(ASMX)

이 서비스 파일에는 서비스에 대한 코드를 추가하고 예제 섹션의 예제에 표시된 대로 실행할 수 있습니다.

C# SOAP 구현 예

다음은 언급된 예시입니다.

예시 #1

코드:

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";
}
}
}

출력:

C# 비누

'메시지'(웹 방식)를 클릭하면 다음과 같은 결과가 출력됩니다.

C# 비누

Example #2

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:

C# 비누

Conclusion

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:C# 베이스다음 기사:C# 베이스