C# SOAP

WBOY
WBOYasal
2024-09-03 15:18:261193semak imbas

SOAP (Simple Access Object Protocol) ialah protokol berasaskan XML dan menyediakan kemudahan untuk aplikasi yang ditulis dalam bahasa berbeza dan berjalan pada platform berbeza untuk berinteraksi antara satu sama lain. Ia berfungsi melalui HTTP. SOAP ialah protokol ringan kerana ia berdasarkan XML, yang merupakan bahasa ringan. C# SOAP adalah bebas daripada platform dan sistem pengendalian di mana ia berfungsi, yang memudahkannya untuk bertukar-tukar data antara aplikasi yang berbeza yang bekerja pada platform yang berbeza. Ia adalah protokol yang digandingkan secara longgar kerana ia tidak memerlukan aplikasi berkomunikasi dalam bahasa yang sama.

Sintaks

Sintaks untuk mentakrifkan mesej SOAP adalah seperti berikut:

<SOAP : Envelope xmlns : SOAP = "https://www.educba.com/">
<SOAP : Header>
</SOAP : Header>
<SOAP : Body>
<SOAP : Fault>
</SOAP : Fault>
</SOAP : Body>
</SOAP : Envelope>

Peraturan sintaks untuk mentakrifkan mesej SOAP adalah seperti berikut:

Pengekodan mesej SOAP hendaklah dilakukan menggunakan bahasa XML. Ia harus menggunakan ruang nama Sampul SOAP. Ia tidak sepatutnya mengandungi rujukan DTD dan arahan pemprosesan XML.

Bagaimana SOAP berfungsi dalam C#?

SOAP berfungsi pada mekanisme Marshalling dan Demarshalling. Ia menggunakan protokol HTTP untuk menghantar mesej berasaskan XML yang dipanggil mesej SOAP kepada pelayan untuk diproses. Mesej SOAP ini mengandungi maklumat untuk diproses. Kami boleh memanggil ini permintaan HTTP, dan kaedah membungkus maklumat ini ke dalam mesej SOAP dipanggil Marshalling.

Kini, pelayan mengambil permintaan daripada pelanggan dan membuka bungkus mesej SOAP yang dihantar oleh pelanggan. Pelayan kemudian memproses permintaan dan menghantar respons yang sesuai kepada klien dalam bentuk mesej SOAP. Kaedah membuka bungkus maklumat ini dipanggil Demarshalling.

C# SOAP

Elemen Mesej SOAP

Mesej Sabun terdiri daripada elemen berikut:

1. Elemen Sampul SOAP: Elemen ini ialah elemen akar mesej SOAP. Ia memberitahu bahawa dokumen XML khusus ialah mesej SOAP. Ia mengandungi butiran mesej SOAP. Elemen pengepala: Elemen pengepala SOAP ialah elemen pilihan bagi mesej SOAP. Tetapi jika mesej SOAP mengandungi elemen ini, maka ia mestilah elemen anak pertama bagi elemen Sampul akar, dan elemen anak Pengepala harus layak sebagai ruang nama. Elemen ini mengandungi maklumat seperti maklumat pembayaran, bukti kelayakan pengesahan, dsb. Elemen SOAP Body: Elemen ini mengandungi maklumat sebenar yang akan ditukar antara dua titik akhir. Ia mengandungi maklumat permintaan dan respons.

Sila cari di bawah contoh elemen SOAP Body daripada mesej respons SOAP yang mengandungi butiran pekerja:

Kod:

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

2. Elemen Kerosakan SOAP: Apabila mesej SOAP dihantar ke pelayan, maka respons yang dikembalikan oleh pelayan boleh mengandungi sama ada maklumat yang diperlukan dalam permintaan mengenai pemprosesan permintaan yang berjaya atau ia boleh mengandungi mesej ralat. Oleh itu, elemen ini mengandungi maklumat berkaitan ralat. Jika mesej SOAP mengandungi elemen ini, maka ia mestilah elemen kanak-kanak bagi elemen Badan.

Subelemen elemen Fault adalah seperti berikut:

  • : Elemen ini mengandungi kod kesalahan asas, yang membantu kami mengenal pasti kerosakan.
  • : Elemen ini mengandungi mesej teks yang memberikan penjelasan terperinci tentang kerosakan.
  • : Ini adalah elemen pilihan dan memberitahu kami siapa yang bertanggungjawab atas kesalahan itu.
  • : Ini juga merupakan elemen pilihan dan mengandungi mesej ralat khusus untuk aplikasi.

Sila cari di bawah rajah yang menunjukkan struktur mesej SOAP:

C# SOAP

Unsur dengan latar belakang berwarna ialah elemen pilihan mesej SOAP.

Mari kita lihat langkah-langkah yang diperlukan untuk mencipta perkhidmatan web SOAP dalam C#. Langkah-langkahnya adalah seperti berikut:

  • Dalam studio visual, pergi ke Fail -> Baharu -> Projek untuk mencipta projek baharu untuk perkhidmatan web.
  • Pilih C# dan templat Web; di bawah itu, pilih Aplikasi Web ASP.NET.
  • Berikan nama dan lokasi penyelesaian.
  • Kini, projek ini akan muncul dalam Penjelajah Penyelesaian.
  • Klik kanan pada projek dalam peneroka penyelesaian, kemudian pilih Tambah -> Perkhidmatan Web (ASMX)

Dalam fail perkhidmatan ini, anda boleh menambah kod anda untuk perkhidmatan dan boleh melaksanakannya seperti yang ditunjukkan dalam contoh di bawah bahagian Contoh.

Contoh untuk Melaksanakan C# SOAP

Di bawah adalah contoh yang dinyatakan :

Contoh #1

Kod:

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

Output:

C# SOAP

Selepas mengklik pada 'Mesej' (kaedah Web), kita akan mendapat output berikut:

C# SOAP

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# SOAP

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.

Atas ialah kandungan terperinci C# SOAP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:C# BaseArtikel seterusnya:C# Base