unity3d在跟.net进行http通信的时候,最常见的就是表单数据的提交请求了,但服务器端会返回一坨json数据,这就要求我们在unity中进行json数据的处理了,一般unity中处理json个数数据用的最多的就是LitJSON(它是.net平台下处理SON数据库的类库)。下面我就贴出源码,仅供学习参考!
关于LitJSON的安装和使用,请参考:http://www.360doc.com/content/13/0117/11/10941785_260686840.shtml
或者参考:http://blog.csdn.net/dingxiaowei2013/article/details/17115665
将LitJson.dll放在assets目录下的plugins文件下,如果没有plugins文件就手动创建一个
Client:
using UnityEngine; using System.Collections; using LitJson; public class GetPhotoList : MonoBehaviour { // Use this for initialization void Start () { StartCoroutine(GetPhotos()); } // Update is called once per frame IEnumerator GetPhotos(){ WWWForm form = new WWWForm(); form.AddField("id","123"); WWW w = new WWW("http://localhost:36944/GetPhotoList.ashx",form); while (!w.isDone){yield return new WaitForEndOfFrame();} if (w.error != null){Debug.LogError(w.error);} Debug.Log(w.text); JsonData jd = JsonMapper.ToObject(w.text); for (int i = 0; i < jd.Count; i++) { Debug.Log("id=" + jd[i]["id"]); Debug.Log("name=" + jd[i]["name"]); } } }
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Runtime.Serialization.Json; using System.ServiceModel; using System.ServiceModel.Web; using System.IO; namespace UpdatePhoto { /// <summary> /// GetPhotoList 的摘要说明 /// </summary> public class GetPhotoList : IHttpHandler { public void Proce***equest(HttpContext context) { context.Response.ContentType = "text/plain"; string id = context.Request.Form["id"]; string path = context.Request.PhysicalApplicationPath; //context.Response.Write("Hello World"); List<Photo> photos = GetPhotos(id,path); DataContractJsonSerializer djson = new DataContractJsonSerializer(photos.GetType()); djson.WriteObject(context.Response.OutputStream, photos); } public List<Photo> GetPhotos(string id,string path) { //获取目录 string localPath = path+id + "\\"; //读取目录下的文件 if (!Directory.Exists(localPath)) return null; string[] files = Directory.GetFiles(localPath); List<Photo> photos = new List<Photo>(); foreach (string file in files) { string filename = file.Substring(file.LastIndexOf('\\')+1); Photo p = new Photo(); p.name = filename; p.id = id; photos.Add(p); } return photos; } public bool IsReusable { get { return false; } } } public class Photo { public string id; public string name; } }
==================== 迂者 丁小未 CSDN博客专栏=================
MyBlog:http://blog.csdn.net/dingxiaowei2013 MyQQ:1213250243
MyTel:13262983383
====================== 相互学习,共同进步 ===================
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。