|
unity3d在跟.net进行http通信的时候,最常见的就是表单数据的提交请求了,但服务器端会返回一坨json数据,这就要求我们在unity中进行json数据的处理了,一般unity中处理json个数数据用的最多的就是LitJSON(它是.net平台下处理SON数据库的类库)。下面我就贴出源码,仅供学习参考!
Client:[mw_shl_code=csharp,true]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[id]);
Debug.Log(name= + jd[name]);
}
}
}[/mw_shl_code]Server:[mw_shl_code=csharp,true]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 ProcessRequest(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;
}
}</photo></photo></photo></photo>[/mw_shl_code]
|
|