UnityWebRequest http post json通信

unity3d 提供了一个用于http通信的类叫:UnityWebRequest,它是www的替代者,所以建议使用这个类。我们这个例子以json格式与服务器通信。这里使用的json组件是:Newtonsoft

首先,服务器使用springboot 的http restful服务,接收请求的代码如下:

 @RequestMapping("logic")
    public DeferredResult<Object> logic(@RequestBody LogicMessage param, @RequestHeader HttpHeaders httpHeaders, HttpServletRequest request, HttpServletResponse response) {
    
}

这果直接使用@RequestBody,让spring负责json和对象的转换。

 

下面是客户端的代码:

publicvoidRequest(object message,RequestCallback callback)

    {

        StartCoroutine(SendRequest(message, callback));

    }

    privateIEnumerator SendRequest(object message,RequestCallback callback)

    {

        stringdata = JsonConvert.SerializeObject(message);

        Debug.Log("向服务器发送请求:"+ data);

        byte[] bodyRaw = Encoding.UTF8.GetBytes(data);

UnityWebRequest request = new UnityWebRequest(uri, "POST");

        request.uploadHandler = new UploadHandlerRaw(bodyRaw);

        request.SetRequestHeader("Content-Type", "application/json;charset=utf-8");

        request.downloadHandler = (DownloadHandler)new DownloadHandlerBuffer();

        yieldreturn webClient.SendWebRequest();

        if (webClient.isNetworkError)

        {

            Debug.Log("http 请求错误:"+ webClient.error);

        } else        {

            stringresult = webClient.downloadHandler.text;

            HttpResponseResult responseObj = JsonConvert.DeserializeObject(result);

            callback(responseObj);

        }

    }

 

欢迎加群交流,QQ群:66728073,197321069,398808948.

转载于:https://my.oschina.net/youxijishu/blog/2993477

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值