参考文章:https://utf-8.live/default/unity-restful-api.html
http://www.xuanyusong.com/archives/4367
Unity 端基本都是通过调用后端 Http 接口解析 Json 字符串方式跟后端交互,大多使用封装好的 WWW 类或者 WWWform 调用后端接口,使用起来非常简单方便,但是 WWW 直接调用 API 默认发起的请求方法是 GET 请求。
如果我们传输的是一个 json 字符串:
// Get the latest webcam shot from outside "Friday's" in Times Square
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour {
public string url = "https://api.com/save";
IEnumerator Start() {
// 创建一个字典设置 key value
Dictionary Headers = new Dictionary ();
Headers.Add ("Content-Type", "application/json");
// 请求的Json数据
Dictionary Dict = new Dictionary ();
Dict ["name"] = "ben";
Dict ["age"] = "18";
string data = Json.Serialize (Dict);
// 转字节
byte[] data;
data = System.Text.UTF8Encoding.UTF8.GetBytes (data);
WWW www = new WWW (url, data, Headers);
yield return www;
// TODO DO SOMETHING
}
}
Unity自己的json序列化是不支持字典格式,但通过使用Json.net库,通过http://www.newtonsoft.com/json下载,并将bin/net20/Newtonsoft.Json.dll 拖入unity工程即可实现序列化。
字典定义:
Dictionary<string,string> a=new Dictionary<string,string>();
Dictionary里的每一元素都由keyvalue组成,key和value,通过一个key读取一个value。
实现方式:using Newtonsoft.Json
public class Test : MonoBehaviour {
void Start()
{
Product product = new Product();
product.dic ["字典key"] = "字典Value";
product.name="我是雨松MOMO";
string json = JsonConvert.SerializeObject(product);
Product m = JsonConvert.DeserializeObject(json);
Debug.Log (json);
Debug.Log (m.name);
}
public class Product
{
public string name;
public Dictionary dic=new Dictionary();
}
}
网友评论