构建WCF RESTful service示例(2)

这里通过WebRequest 方式调用RESTful service的AddImages方法,特别指定了端口,大家可能需要改变为你的server程序开启的端口。其中serverUrl为常量,const string serverUrl = ":48508/images/{0}"; 你当然可以把它放在config文件中,便于修改。

接下来是Default页面,这块是我用JavaScript给出了一个Ajax SlideShow的效果,并且支持Zoom in(放大),这块不是这个示例的重点,大家可以下载源码看看效果。

其中后台是调用Service的GetImageList的方式获取所有图片的信息,再通过JavaScript显示出来,为了达到更好的展示效果,最好上传两张或两张以上的图片.

Default.aspx.cs

/// <summary>    /// The page is used to show the images and zoom in effect.    /// </summary>    public partial class Default : System.Web.UI.Page   {       public string ulConstruct = string.Empty;       const string serverUrl = "http://localhost:48508/images/";       WebRequest request = WebRequest.Create(serverUrl);       protected void Page_Load(object sender, EventArgs e)       {           if (!IsPostBack)           {               this.GetResult();           }       }          /// <summary>        /// Get images from PictureRESTService.        /// </summary>        public void GetResult()       {           WebResponse response = request.GetResponse();           HttpWebResponse webResponse = response as HttpWebResponse;           XDocument document;           if (webResponse.StatusCode.Equals(HttpStatusCode.OK))           {               using (StreamReader reader = new StreamReader(webResponse.GetResponseStream(),Encoding.GetEncoding("utf-8")))               {                    document = XDocument.Load(reader);               }               var nodeList = from node in document.Descendants("string")                              select node;               StringBuilder builder = new StringBuilder();               int i= 0;               foreach (var node in nodeList)               {                   string fileName = node.Value.Substring(node.Value.ToString().LastIndexOf("\\") + 1);                   i++;                   builder.Append("<li>");                   builder.Append("<img src=\"");                   builder.Append(String.Concat(serverUrl, fileName));                   builder.Append("\"  alt=\"");                   builder.Append(fileName);                   builder.Append("\" onclick=\"hidediv('");                   builder.Append(String.Concat(serverUrl, fileName));                   builder.Append("');\" />");                   builder.Append("</li>");               }               if (i.Equals(0))               {                   Response.Write("Please upload some images for viewing.");                   lbMessage.Text = "";               }               else               {                   ulConstruct = builder.ToString();                   lbMessage.Text = "Big format:";               }           }           else           {               Response.Write("Web request failed.");           }       }      }  

好了 这里有一个ulConstruct的string变量,用于显示HTML的code在Default.aspx信息,大家可以看看下载文件中的HTML页面的详细信息,这里就不列举这些前台页面的代码了。

如果一切顺利的话,就可以debug了。

如果在开发中看到远程服务错误或者是400, 500的错误的话,关注下你的配置文件和代码是否正确,get方式的话你可以直接将链接放在浏览器中进行测试,判断问题是出现在service上还是配置上。

Ok。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/633224d72c9bb774da75c1c3acea3f27.html