|
|
Diposting pada 02/12/2015 16.56.31
|
|
|

HttpListener menyediakan pendengar protokol HTTP yang sederhana, dapat diprogram, dan dapat dikontrol. Ini memungkinkan Anda untuk dengan mudah menyediakan beberapa layanan Http tanpa harus memulai program layanan besar seperti IIS.
Catatan: Kelas ini hanya tersedia di komputer yang menjalankan sistem operasi Windows XP SP2 atau Windows Server 2003.
Langkah-langkah umum untuk menggunakan layanan Http adalah sebagai berikut:
Buat objek pemroses HTTP dan inisialisasi Tambahkan awalan URI yang perlu didengarkan Mulai mendengarkan permintaan dari klien Menangani permintaan Http dari klien Menonaktifkan pemroses HTTP Langkah 3 dan 4 dapat didaur ulang untuk menyediakan layanan yang diminta oleh beberapa pelanggan.
Membuat objek pemroses HTTP
Untuk membuat objek pendengar HTTP, Anda hanya perlu membuat objek HttpListener baru.
HttpListener listener = HttpListener(); baru
Inisialisasi memerlukan dua langkah berikut
Anda dapat menambahkan rentang URL untuk didengarkan di listener.Prefixes dengan menggunakan fungsi berikut: pendengar. Prefixes.Add(prefix) //prefix harus diakhiri dengan '/' Hubungi pendengar. Start() untuk mengikat port dan mulai mendengarkan kebutuhan klien. Menerima permintaan HTTP
Di .net 2.0, akses ke objek permintaan dan respons yang digunakan oleh kelas HttpListener disediakan melalui objek HttpListenerContext.
Cara termudah untuk mendapatkan HttpListenerContext adalah sebagai berikut:
Konteks HttpListenerContext = pendengar. GetContext();
Metode ini akan memblokir fungsi panggilan hingga permintaan klien diterima, dan jika Anda ingin meningkatkan kecepatan respons, Anda dapat menggunakan pemroses metode asinkron. BeginGetContext() untuk mendapatkan objek HttpListenerContext.
Menangani permintaan HTTP
Setelah mendapatkan HttpListenerContext, Anda dapat memperoleh objek yang mewakili permintaan klien melalui atribut Permintaan dan objek yang mewakili respons yang akan dikirim HttpListener ke klien melalui atribut Respons.
Permintaan HttpListenerRequest = konteks. Permintaan; Respons HttpListenerResponse = konteks. tanggapan;
Objek HttpListenerRequest di sini mirip dengan penggunaan Request and Response di objek Asp dan HttpListenerResponse, jadi saya tidak akan mengatakan banyak di sini, Anda dapat melihat contoh di bawah ini untuk penggunaan tertentu.
Menonaktifkan pemroses HTTP
Dengan memanggil pendengar. Stop() untuk mematikan pendengar dan mengosongkan sumber daya yang relevan
Contoh kode:
menggunakan Sistem; menggunakan System.Collections.Generic; menggunakan System.Text;
menggunakan System.Net;
namespace ConsoleApplication1
{ Program kelas { static void Main(string[] args) { HttpListener listener = HttpListener(); baru pendengar. Prefixes.Add("http://localhost/"); Menambahkan rentang URL yang perlu didengarkan pendengar. Mulai(); Mulai mendengarkan port dan menerima permintaan klien Console.WriteLine("Mendengarkan...");
Memblokir fungsi utama hingga permintaan klien diterima Konteks HttpListenerContext = pendengar. GetContext(); Permintaan HttpListenerRequest = konteks. Permintaan; Respons HttpListenerResponse = konteks. tanggapan;
string responseString = string. Format("<HTML><BODY> {0}</BODY></HTML>", DateTime.Now); byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString); Keluarkan informasi yang sesuai ke klien. tanggapan. ContentLength64 = penyangga. Panjang; Output System.IO.Stream = respons. Aliran Keluaran; keluaran. Tulis(buffer, 0, buffer. Panjang); Tutup aliran keluaran untuk mengosongkan sumber daya yang sesuai keluaran. Tutup();
pendengar. Berhenti(); Menonaktifkan HttpListener } }
}
Program ini relatif sederhana, pertama-tama buat pendengar HTTP untuk mengimplementasikan layanan domain "http://localhost/time/", ketika menerima permintaan jarak jauh, ia mengubah waktu saat ini menjadi output string ke klien, dan kemudian menutup pendengar.
|
Mantan:Masalah dan solusi untuk panggilan lintas domain AJAX ke layanan MVC atau WebAPI ASP.NETDepan:Pada tanggal 3 Desember 2015, situs web secara resmi berganti nama menjadi "Code Farmer Network", dengan ini diberitahukan!
|