이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 22743|회답: 0

[출처] HttpListener로 간단한 Http 서비스를 구현하세요

[링크 복사]
게시됨 2015. 12. 2. 오후 4:56:31 | | |
HttpListener는 간단하고 프로그래밍 가능하며 제어 가능한 HTTP 프로토콜 리스너를 제공합니다. 이 서비스는 IIS 같은 대규모 서비스 프로그램을 시작하지 않고도 일부 Http 서비스를 쉽게 제공할 수 있게 해줍니다.

참고: 이 수업은 Windows XP SP2 또는 Windows Server 2003 운영체제를 실행하는 컴퓨터에서만 제공됩니다.

Http 서비스를 사용하는 일반적인 단계는 다음과 같습니다:

HTTP 리스너 객체를 생성하고 초기화합니다
들어야 할 URI 접두사를 추가하세요
클라이언트의 요청을 듣기 시작하세요
클라이언트의 Http 요청을 처리합니다
HTTP 리스너를 끄세요
3단계와 4단계는 여러 고객이 요청하는 서비스를 제공하기 위해 순환할 수 있습니다.

HTTP 리스너 객체 생성

HTTP 리스너 객체를 생성하려면 새로운 HttpListener 객체만 생성하면 됩니다.

HttpListener listener = new HttpListener();

초기화는 다음 두 단계를 거쳐야 합니다

listener.prefixes에서 들을 URL 범위를 다음 함수를 사용하여 추가할 수 있습니다:
청취자. 접두사.Add(접두사) //접두사는 반드시 '/'로 끝나야 합니다
리스너에게 전화하세요. start()를 눌러 포트를 바인딩하고 클라이언트의 요구를 듣기 시작하세요.
HTTP 요청을 수락하기

.net 2.0에서는 HttpListener 클래스가 사용하는 요청 및 응답 객체에 대한 접근이 HttpListenerContext 객체를 통해 제공됩니다.

HttpListenerContext를 얻는 가장 쉬운 방법은 다음과 같습니다:

HttpListenerContext context = listener. GetContext();

이 메서드는 클라이언트 요청이 도착할 때까지 호출 함수를 차단하며, 응답 속도를 높이고 싶다면 비동기식 메서드 리스너를 사용할 수 있습니다. HttpListenerContext 객체를 얻기 위해 BeginGetContext()를 사용합니다.

HTTP 요청을 처리합니다

HttpListenerContext를 획득한 후, Request 속성을 통해 클라이언트의 요청을 나타내는 객체를, Response 속성을 통해 HttpListener가 클라이언트에게 보낼 응답을 나타내는 객체를 얻을 수 있습니다.

HttpListenerRequest 요청 = context. 요청;
HttpListenerResponse 응답 = 맥락. 반응;

여기 HttpListenerRequest 객체는 Asp와 HttpListenerResponse 객체에서 Request and Response를 사용하는 것과 유사하므로, 여기서 자세히 말하지는 않겠습니다. 구체적인 용도는 아래 예시를 참고하시면 됩니다.

HTTP 리스너를 끄세요

청취자라고 부르면서요. Stop() 함수는 리스너를 끄고 관련 리소스를 해제하는 데 사용됩니다

코드 예시:

System을 사용;
System.Collections.Generic을 사용;
System.Text 사용;

System.Net 를 사용한다;

네임스페이스 콘솔애플리케이션1
{
    수업 프로그램
    {
        static void Main(string[] args)
        {
            HttpListener listener = new HttpListener();
            청취자. 접두사.Add("http://localhost/"); 들어야 할 URL 범위를 추가하세요
            청취자. Start(); 포트를 듣기 시작하고 클라이언트 요청을 받으세요
            콘솔.WriteLine("듣기...");

            클라이언트 요청이 도착할 때까지 주요 기능을 차단합니다
            HttpListenerContext context = listener. GetContext();
            HttpListenerRequest 요청 = context. 요청;
            HttpListenerResponse 응답 = 맥락. 반응;

            문자열 응답문자열 = 문자열. 포맷("<HTML><BODY>{0}</BODY></HTML>", DateTime.Now);
            byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
            해당 정보를 클라이언트에 출력합니다.
            응답. ContentLength64 = 버퍼. 길이;
            System.IO.Stream 출력 = 응답. OutputStream;
            출력. write(buffer, 0, buffer. 길이;
            출력 스트림을 닫아 해당 자원을 확보하세요
            출력. 클로즈();

            청취자. Stop(); HttpListener를 끄세요
        }
    }
}

이 프로그램은 비교적 간단합니다. 먼저 HTTP 리스너를 만들어 "http://localhost/time/" 도메인의 서비스를 구현하고, 원격 요청을 받으면 현재 시간을 클라이언트에 문자열 출력으로 변환한 후 리스너를 종료합니다.





이전의:AJAX의 ASP.NET MVC 또는 WebAPI 서비스에 대한 크로스 도메인 호출 문제와 해결책
다음:2015년 12월 3일, 웹사이트 이름이 공식적으로 &quot;코드 파머 네트워크&quot;로 변경되었으며, 이에 대해 공지합니다!
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com