Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 22743|Jawab: 0

[Sumber] Menerapkan layanan Http sederhana dengan HttpListener

[Salin tautan]
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.NET
Depan:Pada tanggal 3 Desember 2015, situs web secara resmi berganti nama menjadi &quot;Code Farmer Network&quot;, dengan ini diberitahukan!
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com