C# ソープ

WBOY
WBOYオリジナル
2024-09-03 15:18:261193ブラウズ

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 メッセージの形式でクライアントに送信します。情報をアンラップするこの方法は、デマーシャリングと呼ばれます。

C# ソープ

SOAP メッセージの要素

SOAP メッセージは次の要素で構成されます:

1. SOAP エンベロープ要素: この要素は SOAP メッセージのルート要素です。これは、特定の XML ドキュメントが SOAP メッセージであることを示します。 SOAP メッセージの詳細が含まれます。ヘッダー要素: SOAP ヘッダー要素は、SOAP メッセージのオプションの要素です。ただし、SOAP メッセージにこの要素が含まれる場合は、それがルート Envelope 要素の最初の子要素である必要があり、Header の子要素は名前空間として修飾される必要があります。この要素には、支払い情報、認証資格情報などの情報が含まれます。 SOAP Body 要素: この要素には、2 つのエンドポイント間で交換される実際の情報が含まれます。これには、リクエストとレスポンスの情報が含まれます。

従業員の詳細を含む SOAP 応答メッセージの SOAP Body 要素の例を以下に示します。

コード:

<soap : Body>
<GetEmployeeDetails>
<EmployeeName>John Duffel</EmployeeName>
<EmployeeCode>EI66</EmployeeCode>
</GetEmployeeDetails>
</soap: Body>

2. SOAP Fault 要素: SOAP メッセージがサーバーに送信されると、サーバーから返される応答には、リクエストの処理が成功したときにリクエストに必要な情報が含まれるか、エラー メッセージが含まれる可能性があります。したがって、この要素にはエラー関連の情報が含まれます。 SOAP メッセージにこの要素が含まれる場合、それは Body 要素の子要素である必要があります。

Fault 要素のサブ要素は次のとおりです:

  • : この要素には、根本的な障害のコードが含まれており、障害を特定するのに役立ちます。
  • : この要素には、障害の詳細な説明を提供するテキスト メッセージが含まれます。
  • : これはオプションの要素であり、障害の責任者を示します。
  • : これもオプションの要素であり、アプリケーション固有のエラー メッセージが含まれます。

SOAP メッセージの構造を示す図を以下に示します。

C# ソープ

背景に色が付いた要素は、SOAP メッセージのオプションの要素です。

C# で SOAP Web サービスを作成するために必要な手順を見てみましょう。手順は次のとおりです。

  • Visual Studio で、[ファイル] -> [ファイル] に移動します。新規 -> Web サービスの新しいプロジェクトを作成するプロジェクト。
  • C# と Web テンプレートを選択します。その下で、「ASP.NET Web アプリケーション」を選択します。
  • ソリューションの名前と場所を入力します。
  • これで、このプロジェクトがソリューション エクスプローラーに表示されます。
  • ソリューション エクスプローラーでプロジェクトを右クリックし、[追加] -> [追加] を選択します。 Web サービス (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# ソープ

「メッセージ」(Web メソッド) をクリックすると、次の出力が表示されます:

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:C#ベース次の記事:C#ベース