这里通过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。