この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。
建築家
建築家
リスト
放送
茶屋
インテリジェントAI会話
.NETキャリア&テクニカルカレッジ
ちっちゃいなクズブログ
この版
利用者
Architect_Programmer_Code農業ネットワーク
»
建築家
›
プログラミング
›
.Net/C#
›
HttpListenerでシンプルなHttpサービスを実装します
眺める:
22743
|
答える:
0
[出典]
HttpListenerでシンプルなHttpサービスを実装します
[リンクをコピー]
クズども
掲載地 2015/12/02 16:56:31
|
|
|
HttpListenerは、シンプルでプログラム可能かつ制御可能なHTTPプロトコルリスナーを提供します。 大規模なサービスプログラム(IIS)を立ち上げることなく、簡単にいくつかのHttpサービスを提供できます。
注:このクラスはWindows XP SP2またはWindows Server 2003のオペレーティングシステムを搭載したコンピュータでのみ利用可能です。
Httpサービスを利用する一般的な手順は以下の通りです。
HTTPリスナーオブジェクトを作成し、初期化します
聞く必要があるURIプレフィックスを追加してください
クライアントからのリクエストを聞き始めましょう
クライアントからのHttpリクエストを処理する
HTTPリスナーをオフにしてください
ステップ3と4は複数の顧客から要望されるサービスを提供するためにサイクル可能です。
HTTPリスナーオブジェクトを作成する
HTTPリスナーオブジェクトを作成するには、新しいHttpListenerオブジェクトを作成するだけで済みます。
HttpListener リスナー = 新しいHttpListener();
初期化には以下の2つのステップが必要です
listener.prefixesで聴くURL範囲は以下の関数を使って追加できます:
リスナー。 プレフィックス。Add(プレフィックス) //プレフィックスは必ず '/' で終わらなければなりません
リスナーに電話をかけてください。 Start() でポートをバインドし、クライアントのニーズを聞き始めます。
HTTPリクエストを受け入れる
.net 2.0では、HttpListenerクラスで使用されるリクエストおよびレスポンスオブジェクトへのアクセスはHttpListenerContextオブジェクトを通じて提供されます。
HttpListenerContextを入手する最も簡単な方法は以下の通りです:
HttpListenerContext context = listener. GetContext();
このメソッドはクライアントリクエストが受信されるまで呼び出し関数をブロックし、応答速度を向上させたい場合は非同期メソッドリスナーを利用できます。 HttpListenerContext() オブジェクトを取得するために BeginGetContext() を行ってください。
HTTPリクエストの処理
HttpListenerContextを取得すると、クライアントのリクエストを表すオブジェクトはRequest属性を通じて、HttpListenerはResponse属性を通じてクライアントに送るレスポンスを表すオブジェクトを取得できます。
HttpListenerRequest request = context. リクエスト;
HttpListenerResponse response = コンテキスト。 応答;
ここでのHttpListenerRequestオブジェクトは、AspやHttpListenerResponseオブジェクトのRequest and Responseの使い方に似ているため、ここではあまり詳しくは言いません。具体的な用途については下の例をご覧ください。
HTTPリスナーをオフにしてください
リスナーに電話をかけることで。 リスナーをオフにし、関連するリソースを解放するためのStop()関数
コード例:
Systemを使い、
System.Collections.Genericを使い、
System.Textを使い、
System.Net を用いています。
名前空間 ConsoleApplication1
{
クラスプログラム
{
static void Main(string[] args)
{
HttpListener リスナー = 新しいHttpListener();
リスナー。 プレフィックス。Add("http://localhost/"); 聞くべきURLの範囲を追加してください
リスナー。 Start(); ポートを傍受し、クライアントリクエストを受け取ってください
Console.WriteLine(「聞く...」);
クライアントのリクエストが届くまでメイン機能をブロックします
HttpListenerContext context = listener. GetContext();
HttpListenerRequest request = context. リクエスト;
HttpListenerResponse response = コンテキスト。 応答;
文字列応答文字列 = 文字列。 フォーマット(「<HTML><BODY>{0}</BODY></HTML>」、DateTime.Now);
byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
対応する情報をクライアントに出力します。
応答。 ContentLength64 = バッファ。 長さ;
System.IO.Stream 出力=応答。 OutputStream;
出力。 Write(buffer, 0, buffer. 長さ);
出力ストリームを閉じて対応するリソースを解放します
出力。 Close();
リスナー。 Stop(); HttpListenerをオフにしてください
}
}
}
このプログラムは比較的シンプルで、まず「http://localhost/time/」ドメインのサービスを実装するためのHTTPリスナーを作成し、リモートリクエストを受け取ると現在の時刻をクライアントへの文字列出力に変換し、リスナーを閉じます。
先の:
AJAXによるMVCまたはWebAPIサービスへのクロスドメイン呼び出しの問題点と解決策 ASP.NET
次に:
2015年12月3日、ウェブサイトは正式に「Code Farmer Network」と改名され、ここに通知いたします!
関連記事
•
.NET/C#はAzure Translatorのテキスト翻訳インターフェースサービスを呼びます
•
.NET/C# が Windows Defender セキュリティセンターを閉鎖する を無効化
•
ASP.NET Core(32)はKeyedServicesの鍵サービスの注入に依存しています
•
.NET/C# 依存注入サービス登録 Scrutor ツール
•
Postmanを使ってgRPCサービスをテスト(デバッグ)します
•
DockerをベースにWebDAVサービスを構築する
•
.NET/C#コンソールサービスはConsulサービスディスカバリーに登録されています
•
Consulにおけるブロッキングクエリの詳細な説明
•
稼働時間Kumaに基づいてウェブサイトの利用可能性を監視してください
•
.NET/C#コンソールはリスニングHTTPSプロトコルサービスを有効にします
閲覧したセクション
発表情報
ごみ箱
ウェブサイト構築
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。
Mail To:help@itsvse.com