Restful in Unity

参考文章: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 a=new Dictionary();

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();

}

}

你可能感兴趣的:(Restful in Unity)