Layanan web adalah fungsi berbasis jaringan yang dapat diperoleh oleh aplikasi web melalui protokol jaringan web. Pengembangan layanan web terutama mencakup tiga aspek berikut:
Buat layanan web
Buat server proksi
Gunakan layanan web
Layanan web adalah aplikasi web. Bentuk dasarnya adalah kelas yang berisi beberapa metode yang dapat dipanggil oleh aplikasi lain. Layanan ini juga menggunakan struktur kode tersembunyi seperti halaman web ASP.NET, tetapi tidak memiliki antarmuka pengguna.
Untuk lebih memahami konsep ini mari kita buat layanan web yang menyediakan informasi harga saham. Klien layanan ini dapat mencari nama dan harga terkait melalui tag saham. Untuk menyederhanakan contoh ini, kami menetapkan harga saham ke nilai tetap dan menyimpannya dalam daftar dua dimensi. Layanan web ini berisi tiga metode:
Metode default HelloWorld
Metode GetName
Metode GetPrice
Lakukan langkah-langkah berikut untuk membuat layanan:
Langkah (1) : Pilih File -> Baru -> Situs Web di Visual Studio, lalu pilih Layanan Web ASP.NET.
Langkah (2) : File layanan web bernama Service.asmx dan kodenya disembunyikan, dan Service.cs akan dibuat di jalur App_Code proyek ini.
Langkah (3) : Ubah nama file menjadi StockService.asmx dan StockService.cs.
Langkah (4) : File .asmx menyederhanakan instruksi WebService sebagai berikut:
<%@ WebService Language="C#" CodeBehind="~/App_Code/StockService.cs" Class="StockService" %>
Langkah (5) : Buka file StockService.cs. Kode yang dihasilkan dalam file ini adalah kode dasar layanan Hello World. Kode layanan web default adalah sebagai berikut:
menggunakan Sistem; menggunakan Sistem.Koleksi; menggunakan Sistem.Web.Layanan; menggunakan Sistem.Web.Layanan.Protokol; ; namespace StockService { // <ringkasan> // Deskripsi ringkasan untuk Layanan1 // <ringkasan> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [ToolboxItem(false)] // Untuk mengizinkan Layanan Web ini dipanggil dari skrip, // menggunakan ASP.NET AJAX, hapus komentar pada baris berikut. kelas publik Layanan1 : Sistem.Web.Layanan.WebService { [Metode Web] string publik HelloWorld() { kembalikan "Halo Dunia";
Langkah (6) : Ubah kode pada file untuk menambahkan pointer dua dimensi yang menyimpan string label, nama dan harga setiap saham, dan tulis dua metode web untuk mendapatkan informasi saham sebagai berikut;
menggunakan Sistem; menggunakan System.Linq; menggunakan System.Xml.Linq; ")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] // Untuk mengizinkan Layanan Web ini dipanggil dari skrip, // menggunakan ASP.NET AJAX, batalkan komentar baris berikut. // [System.Web.Script.Services.ScriptService] public class StockService : System.Web.Services.WebService { public StockService () {//Batalkan komentar berikut jika menggunakan komponen yang dirancang //InitializeComponent() } string[,] saham = { {"RELIND", "Reliance Industries", "1060.15"}, {"ICICI", "ICICI Bank", "911.55"}, {"JSW", "JSW Steel", "1201.25"}, {"WIPRO", "Wipro Limited", "1194.65"}, {"SATYAM", "Satyam Computers", "91.10"} } [Metode Web] publik string HelloWorld() { return "Hello World"; } [Metode Web] public double GetPrice(string simbol) {//digunakan simbol sebagai parameter dan mengembalikan harga untuk (int i = 0; i < stocks.GetLength(0); i++) { if (String.Compare(symbol, stocks[i, 0], true) == 0) return Convert.ToDouble(stocks[i , 2]); } return 0; } [WebMethod] public string GetName(string simbol) { // Dibutuhkan simbol sebagai parameter dan // mengembalikan nama stok untuk (int i = 0; i < stocks.GetLength(0); i++) { if (String.Compare(simbol, stocks[i, 0], true) == 0) return stocks[i, 1];
Langkah (7) : Menjalankan aplikasi layanan web memberikan halaman pengujian layanan web tempat kita dapat menguji metode layanan.
Langkah (8) : Klik pada nama metode untuk mengonfirmasi apakah metode tersebut berjalan dengan benar.
Langkah (9) : Untuk mendeteksi metode GetName, berikan salah satu tag stok yang sudah ditentukan. Jika benar, nama stok yang relevan akan dikembalikan.
Untuk menggunakan layanan web ini, kami membuat situs web dengan solusi yang sama (Solusi). Cukup klik kanan nama solusi di manajer solusi. Halaman web yang dipanggil oleh layanan web harus memiliki manajemen kontrol untuk menampilkan hasil pengembalian dan dua tombol kontrol, satu untuk kembali dan satu lagi untuk memulai panggilan ke layanan.
Isi file aplikasi web adalah sebagai berikut:
<%@ Halaman Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="wsclient._Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transisi// ID" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title> Halaman Tanpa Judul </title> </head> <body> <form id="form1 " runat="server"> <div> <h3>Menggunakan Layanan Stok</h3> <br /> <br /> <asp:Label ID="lblmessage" runat="server"></asp:Label> <br /> <br /> <asp:Button ID="btnpostback" runat="server" onclick="Button1_Click" Text="Posting Kembali" /> <asp:Button ID="btnservice" runat="server" onclick="btnservice_Click" Text="Dapatkan Stok" /> </div> </form> </body> </html>
Kode untuk aplikasi webnya adalah sebagai berikut:
menggunakan Sistem; menggunakan Sistem.Koleksi; menggunakan Sistem.Konfigurasi; menggunakan Sistem.Web.UI menggunakan Sistem.Web.UI.HtmlControls; ; menggunakan System.Web.UI.WebControls; menggunakan System.Web.UI.WebControls.WebParts; menggunakan System.Xml.Linq; { kelas parsial publik _Default : System.Web.UI.Page { protected void Page_Load(pengirim objek, EventArgs e) { if (!IsPostBack) { lblmessage.Text = "Waktu Pemuatan Pertama: " + DateTime.Now.ToLongTimeString } else { lblmessage.Text = "PostBack di: " + DateTime.Now.ToLongTimeString(); btnservice_Click(pengirim objek, EventArgs e) { Proxy StockService = new StockService(); lblmessage.Text = String.Format("Harga SATYAM Saat Ini:{0}", proxy.GetPrice("SATYAM").ToString() } } }
Server proxy mengacu pada pengganti kode layanan web. Sebelum menggunakan web service, kita harus membuat server proxy. Server proxy ini didaftarkan oleh aplikasi klien. Aplikasi klien kemudian mengimplementasikan panggilan ke layanan web seolah-olah menggunakan metode asli.
Server proxy akan melakukan panggilan dan mengirimkan panggilan ke server dalam format yang sesuai sebagai permintaan SOAP. SOAP mendukung Protokol Akses Objek Sederhana. Protokol ini cocok untuk pertukaran data layanan web.
Ketika server merespons dan mengembalikan paket SOAP ke klien, server proxy menyajikan semuanya ke aplikasi klien.
Sebelum memanggil layanan web menggunakan btnservice_click, aplikasi web harus ditambahkan ke aplikasi. Ini secara transparan akan membuat kelas proxy yang dapat digunakan oleh acara btnservice_click.
protected void btnservice_Click(pengirim objek, EventArgs e) { Proxy StockService = new StockService(); lblmessage.Text = String.Format("Harga SATYAM Saat Ini: {0}", proxy.GetPrice("SATYAM").ToString()) ;
Lakukan langkah-langkah berikut untuk membuat proksi:
Langkah (1) : Klik kanan pada entri aplikasi web di Solution Explorer dan pilih 'Tambahkan Referensi Web'.
Langkah (2) : Pilih 'Layanan Web dalam solusi ini' dan referensi layanan stok yang kami tulis akan dikembalikan.
Langkah (3) : Klik pada layanan untuk membuka halaman pengujian. Saat membuat proxy, defaultnya adalah 'localhost'. Klik 'Tambahkan Referensi' untuk menambahkan proxy ke aplikasi klien.
Tambahkan pernyataan berikut ke kode Anda untuk menyertakan agen:
menggunakan host lokal;