通过HttpListener实现简单的Http服务

HttpListener提供一个简单的、可通过编程方式控制的 HTTP 协议侦听器。通过它可以很容易的提供 一些Http服务,而无需启动IIS这类大型服务程序。

注意:该类仅在运行 Windows XP SP2 或 Windows Server 2003 操作系统的计算机上可用。

使用Http服务一般步骤如下:

创建一个HTTP侦听器对象并初始化

添加需要监听的URI 前缀

开始侦听来自客户端的请求

处理客户端的Http请求

关闭HTTP侦听器

其中3,4两步可以循环处理,以提供多客户多次请求的服务。

创建一个HTTP侦听器对象

创建HTTP侦听器对象只需要新建一个HttpListener对象即可。

HttpListener listener = new HttpListener();

初始化需要经过如下两步

添加需要监听的URL范围至listener.Prefixes中,可以通过如下函数实现:

listener.Prefixes.Add(prefix)    //prefix必须以'/'结尾

调用listener.Start()实现端口的绑定,并开始监听客户端的需求。

接受HTTP请求

在.net2.0中,通过HttpListenerContext对象提供对HttpListener类使用的请求和响应对象的访问。

获取HttpListenerContext的最简单方式如下:

HttpListenerContext context = listener.GetContext();

该方法将阻塞调用函数至接收到一个客户端请求为止,如果要提高响应速度,可使用异步方法 listener.BeginGetContext()来实现HttpListenerContext对象的获取。

处理HTTP请求

获取HttpListenerContext后,可通过Request属性获取表示客户端请求的对象,通过Response属性取 表示 HttpListener 将要发送到客户端的响应的对象。

HttpListenerRequest request = context.Request;
HttpListenerResponse response = context.Response;

这里的HttpListenerRequest对象和HttpListenerResponse对象和Asp中的Request和Response的使用方 式类似,这里就不多说了,具体的使用可以参看下面的例子。

时间: 2024-09-30 02:50:32

通过HttpListener实现简单的Http服务的相关文章

.NET下通过HttpListener实现简单的Http服务_实用技巧

HttpListener提供一个简单的.可通过编程方式控制的 HTTP 协议侦听器.使用它可以很容易的提供一些Http服务,而无需启动IIS这类大型服务程序.使用HttpListener的方法流程很简单:主要分为以下几步  1.创建一个HTTP侦听器对象并初始化  2.添加需要监听的URI 前缀  3.开始侦听来自客户端的请求  4.处理客户端的Http请求  5.关闭HTTP侦听器  例如:我们要实现一个简单Http服务,进行文件的下载,或者进行一些其他的操作,例如要发送邮件,使用HttpLi

ios-如何为app提供简单的数据服务

问题描述 如何为app提供简单的数据服务 iOS开发刚入门,做了一款关于北京公共自行车掌上指南的app,但碰到一个数据更新的问题:由于北京市交通委运输局官方未提供数据接口,只能手动整理数据,这些数据第一次是以SQLite存在用户本地,可网点等数据虽然简单(几个字段)是要经常变化的,怎么在网上提供一个类似数据接口的地方,让移动端去调用,自动获取数据呢? 各位大神,有没有简便易用的方法呢?曾经考虑过把数据放到博客里,然后解析html获取数据,是不是太笨了... 附上app地址:https://itu

java-一个简单的Java服务端,客户端的demo中的问题。

问题描述 一个简单的Java服务端,客户端的demo中的问题. 首先说我的问题:我需要用java做一个服务器端,当客户端发过一条请求来以后,服务器端开始每隔1s对客户端发送一个字符串. 然后说我的思路: 这是服务端. public static void main(String[] args) { String temp; try { while (true) { ServerSocket ss = new ServerSocket(30000); // 每当接受到客户端socket的请求,服务

Java Socket编程实现简单的问候服务_java

本文实例讲解了Java Socket编程实现简单的问候服务的详细代码,供大家参考,具体内容如下 服务器端: 实现一个最简单的Hello服务,打印输出客户端IP地址到控制台,对任何连接的客户端都会发送一串字符(Hello, Java Socket)然后关闭与客户端连接.等待下一个客户端的连接请求到来. 客户端: 实现一个最简单的Socket连接到Hello服务器端,接受服务器端发送过来的字节数据打印并输出内容到控制台. 关键技巧: 由于JAVA中提供非常多的输入与输出流API,导致很多初学者接触J

在IBM Lotus Expeditor中构建并部署简单的Web服务资源

Web 服务资源框架(Web Services Resource Framework,WSRF)规范为使用 Web 服务有状态地访问资源的机制制定了标准.IBM Lotus Expeditor 将 WSRF 作为一项特性整合进来,使您可以将 Open Service Gateway initiative(OSGi )服务作为资源公开.本文介绍了 WSRF 所涉及的概念,并阐明了与建模和公开 简单的有状态资源(使用 Web 服务作为 OSGi 包实现)相关的步骤.然后进一步 说明了如何使用 WSR

[WCF REST] 一个简单的REST服务实例

微软在WCF 3.5中就通过提供基于Web HTTP的编程模式使我们很容易地创建基于REST的服务,WCF 4.0中对此进行了较大的改进.为了让读者对REST在WCF中的应用有一个大致的了解,我们先来进行一个简单的实例演示. [源代码从这里下载] 一.定义服务契约 在这个实例中,我们创建一个简单的服务来管理员工的基本信息.至于实例程序的结构,我们依然采用熟悉的包含三个项目(Service.Interface.Service和Client)的解决方案.如下所示的是定义在Service.Interf

WCF应用 - 简单的Rest服务

1. 什么是REST?   Rest的全称是Representational State Transfer, 普通的WCF使用SOAP,而使用REST构建的WCF服务 使用其他数据传输方式,例如JSON Rest的四种操作: GET - Requests a specific representation of a resource PUT - Creates or updates a resource with the supplied representation DELETE - Dele

一步一步教你实现一个简单的云服务

准备工作: Windows Azure只能运行在Windows 7, Windows Server 2008 和Windows Vista 上.暂不支持Windows 2003和XP.昨天安装了Win7,打算尝试写一个 Azure小程序,程序很简单,实现图片的简单上传和搜索功能,我顺便研究一下 微软的Azure平台,下面是我的软件环境. 操作系统:Windows 7 开发工具:Visual Studio2010 RC,Windows Azure SDK ,Windows Azure Tools

Axis2与Eclipse整合开发Web Service之一:简单的计算服务例子

系统功能: 开发一个计算器服务CalculateService,这个服务包含加(plus).减(minus).乘 (multiply) .除(divide)的操作. 开发前准备: 1.安装Eclipse-jee: 2.下载Axis2的最新版本Axis2 1.4.1 Release,网址 http://ws.apache.org/axis2/download/1_4_1/download.cgi ,选择Standard Binary Distribution 的.zip包即"axis2-1.4.1