看完之后,知道大概流程,以后出门你也可以跟别人说,你可以跟别人说你会接服务器了。
有问题可以在评论区问,或者私信我。
首先:带大家看看后台的数据。

这个是后端给我的要对接的数据。

第一步,我们先看一下我们需要操作的流程:

(写class)1,先写一个类(假设它是饭盒),用来把返回来的参数转换成我们可以用的类(假设是米饭),并储存,这样我们就能拿到服务器给我们的数据了,才能开吃。(为什么不先为传过去的参数写个类,因为这个可以直接封装然后传过去,一次性就没必要
(Get方法)2,意淫好了,也准备好了饭盒(类),那下一步,就是要饭(数据),怎么要?那我们就得告诉它,这样它才可能会给我们饭,那就写个Get()方法(这个相当于一根棍子,你不戳它,它不知道你叫它)。
(获得返回结果)3,戳了它之后,它会看我们要饭的姿势对不对,不对的话,它会直接拒绝,那你就得换各种姿势,直到它满意为止,这个姿势,就是你要传过去的参数。
(拿到json)4,它满意之后,居然给了我们一勺米,这就很尴尬了,那我们就得煮熟米(转换),才能变成饭

第二步,看完上面四步,那我们就开始,把它从幻想变成现实。

1,写class,超简单,不用挂在物体上

 public class Manager//管理类{}public class Lessons//课件(们)类{public string code;//返回错误代号,例如你经常玩游戏遇到的error:10010,这个后台会跟你说具体的public string message;//返回的成功与否详细信息public T data;//上面那个data写的是null,是因为现在暂时没东西。如果有东西他就是个array}

2,饭盒做好了,那要饭吧,要饭的过程有点艰难,看官一定要坚持,这步过了就成功了。
找棍子戳它

public enum NetWork//这个枚举的用处是,要饭时,他看你的姿势满意与否返回的值
{WARNING,//警告ERROE,//不满意SUCCESS//满意
}
public class WebRequest : MonoBehaviour//找棍子的地方
{public static WebRequest _ins;//写成静态类,你才拿得到private void Awake(){_ins = this;DontDestroyOnLoad(this);}}

地方有了,那拿棍子前,我们是不是要让服务器它知道,我们要的是米饭(路径url),不是iPhone12,对不对,要不然它要是给我们iphon12 一脚那挺疼的。
那在棍子上面塞个小字条(路径url),再摆个好姿势(传参过去),棍子准备好(Get()方法)

public class WebRequest : MonoBehaviour//找棍子的地方
{public static WebRequest _ins;//写成静态类,你才拿得到readonly string url_saveLessons = "/api/teacher/savePrepareLessons";//小纸条写好了(路径)private void Awake(){_ins = this;DontDestroyOnLoad(this);}//前面这两个int值,是我们需要传过去的参数,后台会告诉你具体传什么,你们可以假想都是1//Action是回调,先别管,等会我再讲这个public void GetInfo_Lenssons(int teacherId, int coursewareId, Action<NetWork, string> callBack)//棍子{Dictionary<string, object> dic = new Dictionary<string, object>{{ "teacherId",teacherId},{ "coursewareId",coursewareId}};StartCoroutine(GetUrl(url_saveLessons, dic, callBack));}//这个就是基于unity联网的请求,我这就不具体写了public IEnumerator GetUrl(string url, Dictionary<string, object> getData, Action<NetWork, string> callBack){string data = GetStringFromDict(getData);Debug.Log("data:" + data);if (!String.IsNullOrEmpty(data))url = url + "?" + data;Debug.Log(" RequestService ------ GetUrl() - " + url);using (UnityWebRequest www = new UnityWebRequest(url, "GET")){www.downloadHandler = (DownloadHandler)new DownloadHandlerBuffer();www.useHttpContinue = false;yield return www.SendWebRequest();long mark = 200;if (www.isNetworkError)//发起请求失败 -- 弹出异常{Debug.Log("www.isNetworkError:" + www.error);//("请求失败", "请求失败!\n在请求时发生了一个错误,\n请重试\n错误信息:" + www.error);callBack(NetWork.ERROE, www.error);}else if (!mark.Equals(www.responseCode))//发起请求成功,但未能正确到达服务器{Debug.Log("warning:" + www.responseCode.ToString());//("请求失败", "请求异常!\n请重试.\n错误代码:" + www.responseCode);callBack(NetWork.WARNING, www.responseCode.ToString());//warning}else if (mark.Equals(www.responseCode))//本次请求成功 - 服务器有返回数据{Debug.Log("success:" + www.downloadHandler.text.ToString());string json = www.downloadHandler.text;callBack(NetWork.SUCCESS, json);}}}}

棍子Get(),纸条(url),摆的姿势(上面两个int值),装米的手(那个回调,等会讲),都有了,戳它!

这时你可以打开你的一个面板panel,没就就自己创一个,写个main_Script脚本挂载在面板上。

public class main_Script: MonoBehaviour{public Lessons ssr_wan;//碗掏出来void Start(){WebRequest._ins.GetInfo_Lenssons(1,1,callback_Method);//这就是执行的操作,戳}//这个就是装米的手——回调方法private void callback_Method(NetWork arg1, string json){if (arg1 != NetWork.SUCCESS){//姿势不对,换一个return;}else{ssr_wan = JsonConvert.DeserializeObject<Lessons >(json);//把米饭煮熟了装进了碗里//执行你赋值的操作,完结,开吃}}}

Unity如何连接后端数据Get教材,超详细介绍(看POST前先看这个)相关推荐

  1. 【目标检测】56、目标检测超详细介绍 | Anchor-free/Anchor-based/Backbone/Neck/Label-Assignment/NMS/数据增强

    文章目录 1.双阶段和单阶段目标检测器 1.1 双阶段目标检测器 1.1.1 R-CNN 1.1.2 SPP 1.1.3 Fast R-CNN 1.1.4 Faster R-CNN 1.2 单阶段目标 ...

  2. 卷积神经网络超详细介绍

    文章目录 1.卷积神经网络的概念 2. 发展过程 3.如何利用CNN实现图像识别的任务 4.CNN的特征 5.CNN的求解 6.卷积神经网络注意事项 7.CNN发展综合介绍 8.LeNet-5结构分析 ...

  3. 卷积神经网络(CNN)超详细介绍

    文章转自:https://blog.csdn.net/jiaoyangwm/article/details/80011656 文章目录 1.卷积神经网络的概念 2. 发展过程 3.如何利用CNN实现图 ...

  4. 卷积神经网络超详细介绍1

    1.卷积神经网络的概念 2. 发展过程 3.如何利用CNN实现图像识别的任务 4.CNN的特征 5.CNN的求解 6.卷积神经网络注意事项 7.CNN发展综合介绍 8.LeNet-5结构分析 9.Al ...

  5. 卷积神经网络超详细介绍(转载)

    卷积神经网络超详细介绍 文章目录 1.卷积神经网络的概念 2. 发展过程 3.如何利用CNN实现图像识别的任务 4.CNN的特征 5.CNN的求解 6.卷积神经网络注意事项 7.CNN发展综合介绍 8 ...

  6. 【语义分割】1、语义分割超详细介绍

    文章目录 一.分割方法介绍 1.1 Fully Convolutional Networks [2015] 1.1.1 FCN 1.1.2 ParseNet 1.2 Encoder-Decoder B ...

  7. 垃圾收集概述和垃圾收集算法(超详细介绍)

    文章目录 垃圾收集概述和垃圾收集算法(超详细介绍) 为什么我们还要去了解垃圾收集和内存分配 哪些内存需要回收 不需要回收的 需要回收的 方法区的回收 回收废弃常量 回收"不再被使用的类&qu ...

  8. AIOT核心技术之一--37种传感器超详细介绍

    AIOT核心技术之一–37种传感器超详细介绍 我们知道,传感器对于AIOT来说是最核心的技术之一,在物理层中几乎就是通过各种传感器来从周围读取数据用网络技术传给应用层的人工智能.机器学习.大数据等领域 ...

  9. Scala语言超详细介绍(上)

    Scala语言 1.为什么要学习scala? 2.scala的介绍 3.scala语言和Java语言对比 4.编译工具的安装 5.main方法讲解 6. scala中的数据数据类型 7. 懒加载 8. ...

  10. MyBatis超详细介绍——SQL语句构建器类

    MyBatis超详细介绍--SQL语句构建器类 (本文作为学习笔记,了解更多请参考:MyBatis参考文档) MyBatis3提供了SQL类帮助构造SQL语句: private String sele ...

最新文章

  1. 如何设置matplotlib中x,y坐标轴的位置?
  2. 【学术写作】写综述小窍门,教你轻松写综述
  3. vscode打造golang开发环境以及golang的debug单元测试
  4. ZedGraph怎样实现将图形右键菜单的打印和页面设置合并为打印的二级子菜单
  5. 台式计算机机箱的作用,如何选择台式电脑机箱?小白安装电脑机箱常识指南
  6. LintCode-375.克隆二叉树
  7. SAP CRM呼叫中心的邮件发送实现 - Function module CRM_EMAIL_SEND_EMAIL
  8. 详解SpringMVC中Controller的方法中参数的工作原理[附带源码分析] good
  9. 通过Spring Boot了解H2 InMemory数据库
  10. 开源GIS(二十)——CAD数据添加属性转GIS数据
  11. 【辨异】entice, tempt, lure, seduce, induce
  12. 图像处理_如何保存浮点型数值的图像? (C++ / OpenCV)
  13. python xml etree_Python 标准库之 xml.etree.ElementTree
  14. MATLAB矩阵合并
  15. CH579 以太网转串口 串口服务器代码
  16. 为什么总是封板又打开涨停_多次涨停多次被打开,涨停板打开然后封住反复
  17. web开发与设计,这些网站为你提供大量的开发资源与设计灵感
  18. Tensorflow-saver模型参数保存及载入
  19. 百度连续四年亮相全球量子信息处理顶会QIP 宣布量子战略规划升级
  20. 事务的四大属性ACID即事务的原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability.。...

热门文章

  1. 网络是泡沫吗?by Kaifu Lee
  2. Spring Boot -05- 多模块结构项目构建与测试(详细图文教程)IDEA 版
  3. Transphorm的SuperGaN第四代多千瓦级功率FET获得汽车级认证
  4. linux创建新命名空间,Linux命名空间概述
  5. Java 实现 蓝桥杯 等额本金
  6. 微信可以一键批量删除好友了!
  7. 运营商服务器停电,断网、停电、死机怎么办?最详细智慧票务系统应急解决方案...
  8. 星空动画canvas
  9. 2022年4月23日--2022年4月29日(osgEarth调试+UE4视频教程+ogreRenderSystem源码抄写,本周10小时,共1300小时,剩下8700小时)
  10. 美团员工在公司内部组织区块链传销诈骗 牵涉金额巨大