Http通信
来源:互联网 发布:澳大利亚同性婚姻知乎 编辑:程序博客网 时间:2024/06/05 08:01
using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;using System;public class NetWorkHttp : MonoBehaviour{ #region 单利模式 private static NetWorkHttp _ins; public static NetWorkHttp Ins { get { if (_ins == null) { GameObject obj = new GameObject("NetWorkHttp"); DontDestroyOnLoad(obj); _ins = obj.GetOrAddComponent<NetWorkHttp>(); } return _ins; } } #endregion #region 属性 /// <summary> /// web请求回调 /// </summary> public Action<CallBackArgs> m_CallBack; /// <summary> /// web请求回调数据 /// </summary> private CallBackArgs m_CallBackArgs; /// <summary> /// 是否繁忙 /// </summary> private bool isBusy = false; public bool IsBusy { get { return isBusy; } } #endregion #region 创建回调数据的类实例 private void Awake() { m_CallBackArgs = new CallBackArgs(); } #endregion #region 发送web数据 public void SendData(string url, Action<CallBackArgs> callBack, bool isPost = false, string json = "") { if (isBusy) return; isBusy = true; Debug.Log(url); m_CallBack = callBack; if (!isPost) { GetUrl(url); } else { PostUrl(url, json); } } #endregion #region Get请求 private void GetUrl(string url) { WWW data = new WWW(url); StartCoroutine(Get(data)); } private IEnumerator Get(WWW data) { yield return data; isBusy = false; if (string.IsNullOrEmpty(data.error)) { if (data.text == "null") { m_CallBackArgs.IsError = true; m_CallBackArgs.ErrorMsg = "未能请求到数据"; m_CallBack(m_CallBackArgs); } else { if (m_CallBack != null) { m_CallBackArgs.IsError = false; m_CallBackArgs.Json = data.text; m_CallBack(m_CallBackArgs); } } } else { m_CallBackArgs.IsError = true; m_CallBackArgs.ErrorMsg = data.error; m_CallBack(m_CallBackArgs); } } #endregion #region POST请求 private void PostUrl(string url, string json) { //定义个表单 WWWForm form = new WWWForm(); //给表单增加值 form.AddField("", json); WWW data = new WWW(url, form); StartCoroutine(Resqust(data)); } /// <summary> /// 请求服务器 /// </summary> /// <param name="data"></param> /// <returns></returns> private IEnumerator Resqust(WWW data) { yield return data; isBusy = false; if (string.IsNullOrEmpty(data.error)) { if (data.text == "null") { m_CallBackArgs.IsError = true; m_CallBackArgs.ErrorMsg = "未能请求到数据"; m_CallBack(m_CallBackArgs); } else { if (m_CallBack != null) { m_CallBackArgs.IsError = false; m_CallBackArgs.Json = data.text; m_CallBack(m_CallBackArgs); } } } else { Debug.Log("请求出错"); m_CallBackArgs.IsError = true; m_CallBackArgs.ErrorMsg = data.error; m_CallBack(m_CallBackArgs); } } #endregion #region 请求回调数据类 public class CallBackArgs { public bool IsError; public string ErrorMsg; public string Json; } #endregion}
阅读全文
0 0
- Http 通信
- http通信
- HTTP 通信
- Http通信
- Http通信
- Http通信
- HTTP 通信
- Http通信
- http通信
- HTTP通信
- HTTP通信
- Http通信
- 【HTTP】HTTP通信步骤
- http通信和tcp通信
- HTTP 通信http通信过程简介
- HTTP 通信http通信过程简介
- android-async-http(http通信)
- http通信过程简介
- Socat环境搭建
- 新手如何快速学php
- 总结一下回武汉的笔试面试
- php中静态变量和普通变量的区别
- Python函数式编程——map()、reduce()
- Http通信
- HDU
- 【OpenCV】图像平滑
- Laravel 在构造方法中使用session
- Java屏幕截图及剪裁
- 系统测试之测试对象与测试级别(二)
- HBase踩过的坑——持续更新
- Hexo: TypeError: Cannot set property 'lastIndex' of undefined
- leetcode two sum