码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 用Unity同时开发【微信小游戏】【安卓】【IOS】游戏#6.1 Http通信


    【系列文章目录】


    文章目录

    • 【系列文章目录】
    • 前言
    • 一、创建HttpReq类


    前言

    本篇来实现Http通信

    Http比较简单直接使用UnityWebRequest进行封装即可


    一、创建HttpReq类

    虽然Unity有UnityWebRequest且非常的完整

    但是在使用上比较麻烦

    所以我们会对它进行封装,这里我创建了一个HttpReq类,继承了Mono单例

    public class HttpReq : MonoSingleton<HttpReq>
    {
    }
    
    • 1
    • 2
    • 3

    Http请求有很多类型:

    • get
    • post
    • put
    • options
    • head
    • delete
    • trace
    • connect

    而我们最常用的就是get和post,现在我们就来实现它

    //Get请求
    IEnumerator GetReq(string url, Action<string> callback)
    {
        UnityWebRequest webRequest = UnityWebRequest.Get(url);
    
        yield return webRequest.SendWebRequest();
    
        if (webRequest.result == UnityWebRequest.Result.ProtocolError ||
                webRequest.result == UnityWebRequest.Result.ConnectionError)
            Debug.Log(webRequest.error);
        else
        {
            callback?.Invoke(webRequest.downloadHandler.text);
        }
    }
    
    //Post请求
    IEnumerator PostReq(string url, string data, Action<string> callback)
    {
        UnityWebRequest webRequest = UnityWebRequest.Post(url, data);
    
        yield return webRequest.SendWebRequest();
        if (webRequest.result == UnityWebRequest.Result.ProtocolError ||
                  webRequest.result == UnityWebRequest.Result.ConnectionError)
            Debug.Log(webRequest.error);
        else
        {
            callback?.Invoke(webRequest.downloadHandler.text);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    这里我们定义了两个携程来发送Http请求,但是并没有开启,接下来是开启请求

    public void Get(string url, Action<string> callback)
    {
        StartCoroutine(GetReq(url, callback));
    }
    
    public void Post(string url, string data, Action<string> callback)
    {
        StartCoroutine(PostReq(url, data, callback));
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    这样我们就可以通过

    HttpReq.Instance.Get(url, callback);
    HttpReq.Instance.Post(url, data, callback);
    
    • 1
    • 2

    来请求Http了,将他们添加到API类中

    public static void HttpReqGet(string url, Action<string> callback)
    {
        HttpReq.Instance.Get(url, callback);
    }
    
    public static void HttpReqPost(string url, string data, Action<string> callback)
    {
        HttpReq.Instance.Post(url, data, callback);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    并生成胶水代码后,我们就可以在TS直接调用他们了

    API.HttpReqGet(url, callback);
    //callback使用this.GetResp.bind(this)防止丢失this对象
    
    API.HttpReqPost(url, data, this.PostResp.bind(this));
    //callback使用this.PostResp.bind(this)防止丢失this对象
    
    • 1
    • 2
    • 3
    • 4
    • 5

  • 相关阅读:
    UNIAPP day_02(8.31) 条件编辑、数据绑定、生命周期方法
    超图WMTS服务的几个关键参数
    STM32——HAL库中寄存器地址名称映射分析
    对1GHz脉冲多普勒雷达进行快速和慢速处理生成5个移动目标的距离多普勒图研究(Matlab代码实现)
    Collectors.toMap()方法——Java8
    建筑特种工附着式升降脚手架工种试题及答案
    88-Spring Boot详解
    【广州华锐互动】VR高层小区安全疏散演练系统
    个人强化学习论文导航
    Linux(四)- Linux常用基本命令(帮助命令、文件目录类、搜索查找类、进程管理类)
  • 原文地址:https://blog.csdn.net/ruanlinxi1994/article/details/125508060
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号