您现在的位置是:主页 > news > 免费做h5的网站/公司做网页要多少钱

免费做h5的网站/公司做网页要多少钱

admin2025/6/1 18:21:58news

简介免费做h5的网站,公司做网页要多少钱,中国互联网排名前十名,广西桂林旅游攻略自由行最佳线路前言 首先我们来了解一下WCF Rest吧。 Rest是一种设计风格,不是一个标准。Rest通常使用HTTP,URI,XML,HTML等流行的协议和标准。Rest是从资源的角度来观察网络的,而资源是由URI来指定的。Rest对资源的操作类型通常包括&#xff1a…

免费做h5的网站,公司做网页要多少钱,中国互联网排名前十名,广西桂林旅游攻略自由行最佳线路前言 首先我们来了解一下WCF Rest吧。 Rest是一种设计风格,不是一个标准。Rest通常使用HTTP,URI,XML,HTML等流行的协议和标准。Rest是从资源的角度来观察网络的,而资源是由URI来指定的。Rest对资源的操作类型通常包括&#xff1a…

前言

  首先我们来了解一下WCF  Rest吧。

  • Rest是一种设计风格,不是一个标准。
  • Rest通常使用HTTP,URI,XML,HTML等流行的协议和标准。
  • Rest是从资源的角度来观察网络的,而资源是由URI来指定的。
  • Rest对资源的操作类型通常包括:获取,创建,删除和修改,这四种操作分别对应着HTTP协议请求的GET,POST,DELETE和PUT方法。
  • 资源的表现形式可以为:XML,HTML,JSON的文本。
  • Rest是服务端-客户端结构中的一种应用方法。
  • Rest使用的是HTTP协议,因此是无状态的。

Rest在Asp.Net Mvc中的使用

   第一步:先来创建一个Asp.Net Mvc3.0的Web项目。

   第二步:创建一个类库,然后添加一个接口和实现。

  接口代码

namespace WCFLib
{[ServiceContract]public interface IRestService{[WebGet(UriTemplate = "/Test/{Param}/XML", ResponseFormat = WebMessageFormat.Xml)]string Test(string Param);}
}

  接口实现

namespace WCFLib
{[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)][ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]public class RestService:IRestService{public string Test(string Param){switch (Param){ case"1":return "Hello WCF Rest!";case"2":return "Hello Asp.Net Mvc3.0 WCF Rest!";default:return Param;}}}
}

 接口的实现还添加[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]

 

当然还需要在Web.config中进行配置

  <system.serviceModel><serviceHostingEnvironment aspNetCompatibilityEnabled="true"/></system.serviceModel>

第三步:在Global.asax.cs中添加Rest路由

  先修改原路由代码

 

        public static void RegisterRoutes(RouteCollection routes){routes.IgnoreRoute("{resource}.axd/{*pathInfo}");routes.MapRoute("Default", // 路由名称"{controller}/{action}/{id}", // 带有参数的 URLnew { controller = "Home", action = "Index", id = UrlParameter.Optional }, // 参数默认值new { controller = @"^\b(?!(RestTest))\w*\b$" }  ///此处采用参数constraints,针对Controller进行正则匹配,如果Controller中含有GetRegSourceData的字符串,则过滤掉不执行此路由);}

  主要是对Rest进行过滤。

  然后添加针对Rest的路由

routes.Add(new ServiceRoute("RestTest",new WebServiceHostFactory(),typeof(RestService)));

  运行Web项目

 看这三个结果,正好与服务实现相对应。

        public string Test(string Param){switch (Param){ case"1":return "Hello WCF Rest!";case"2":return "Hello Asp.Net Mvc3.0 WCF Rest!";default:return Param;}}

 

在Mvc控制器中来调用Rest服务的实现

 

        public ActionResult About(){string StrUri = "http://" + this.Request.Url.Authority + "/RestTest/" + "Test/" + "1" + "/XML";HttpWebRequest _request = (HttpWebRequest)WebRequest.Create(StrUri);HttpWebResponse _response = (HttpWebResponse)_request.GetResponse();StreamReader _reader = new StreamReader(_response.GetResponseStream(), Encoding.UTF8);string _returnXML = _reader.ReadToEnd();_reader.Close();_response.Close();string GetResult = GetMetaByName("string", _returnXML);return View("About",null,GetResult);}public static string GetMetaByName(string _name, string _meta){XmlDocument doc = new XmlDocument();doc.LoadXml(string.Format("<XmlText>{0}</XmlText>", _meta));XmlNodeList elemList = doc.GetElementsByTagName(_name);if (elemList.Count > 0){return elemList[0].InnerXml;}else{return "";}}

  

  这样GetResult就是我们想要获取的值。

通过JavaScript来调用Rest服务

 

<script type="text/javascript">window.onload = function () {var _xml = GetRestXML();var XmlDoc = new ActiveXObject("Microsoft.XMLDOM");XmlDoc.async = "false"; XmlDoc.loadXML("<XmlData>" + _xml.xml + "</XmlData>");var ArrTableNode = XmlDoc.getElementsByTagName("string");alert(ArrTableNode[0].text);}function GetRestXML() {if (window.XMLHttpRequest) {xmlhttp = new XMLHttpRequest();}else {xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");}//岗位id要从url取xmlhttp.open("GET", "../RestTest/Test/2/XML", false);xmlhttp.send();return xmlhttp.responseXML;}
</script>

  我们通过GetRestXML()来调用Rest服务获取数据,返回XML,然后通过Microsoft.XMLDOM来获取XMl节点数据。我将Js函数放在Index视图的Window.onload事件中,就是在主页面加载完毕后执行。

效果如下。

总结

  以上就是asp.net mvc 中如何调用Rest服务的两种方式。看起来很是很简单的, 我也只是很简单的实现了调用,当然需要优化的地方还是很多的。

     示例代码下载地址 http://files.cnblogs.com/aehyok/WCFREST.rar