Unity后台登录/获取数据——BestHTTP的使用Get/Post

这篇具有很好参考价值的文章主要介绍了Unity后台登录/获取数据——BestHTTP的使用Get/Post。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、使用BestHTTP实现登录功能(Post)

登录具体的步骤如下:
1:传入你的用户名和密码,这是一条包括链接和用户名密码的链接
2:使用BestHTTP的Post功能将链接传到服务器后台
3:后台拿到了你传送的包括用户名和密码的链接以后,解析用户名和密码,和数据库中的内容进行比对
4:如果是匹配的就返回true,如果补匹配就返回false

具体的代码如下:

using UnityEngine;
using System;
using BestHTTP;
using LitJson;
using Cysharp.Threading.Tasks;

public class ServerManager : Singleton<ServerManager>
{
    private string root = "http://*************************************";
    private ResponseResult response;
    public ResponseResult Response
    {
        get => response;
    }
    
    /// <summary>
    /// 使用异步操作加载
    /// </summary>
    /// <param name="username"></param>
    /// <param name="password"></param>
    /// <returns></returns>
    public async UniTask<bool> Login(string username, string password)
    {
        var url = $"{root}?username={username}&password={password}";
        HTTPRequest request = new HTTPRequest(new Uri(url), HTTPMethods.Post);
        await request.Send();
        if (request.Exception != null)
        {
            Debug.Log("请求异常" + request.Exception.Message);
            return false;
        }
        else if (request.Response.IsSuccess)
        {
            Debug.Log("response success!");
            string stringResponse = request.Response.DataAsText;
            response = JsonMapper.ToObject<ResponseResult>(stringResponse);
            bool isSuccess = response.success;
            Debug.Log(isSuccess);
            Debug.Log(response.result);
            return isSuccess;
        }
        return false;
    }
}
public abstract class Singleton<T> where T : new()
{
    private static T _instance;
    private static object _lock = new object();
    public static T Instance
    {
        get
        {
            if (_instance == null)
            {
                lock (_lock)
                {
                    if (_instance == null)
                    {
                        _instance = new T();
                    }
                }
            }
            return _instance;
        }
    }
}
public class ResponseResult
{
    public bool success;
    public string errorMessage;
    public object data;
    public string result;
}
private string root = "http://*********";

这是你后台链接,就是你们的服务器IP地址

var url = $"{root}?username={username}&password={password}";

使用字符串拼接把服务器的地址和你的用户名密码拼接在一起,组成一条链接

HTTPRequest request = new HTTPRequest(new Uri(url), HTTPMethods.Post);
await request.Send();

使用BestHTTP插件把刚才的Url链接Post上去,注意使用HTTPMethods.Post方法,这里因为使用了异步,所以直接用await,不用使用回调函数

string stringResponse = request.Response.DataAsText;
response = JsonMapper.ToObject<ResponseResult>(stringResponse);

这里使用一个字符串从服务器获取到你的内容,然后使用LitJson解析下内容

bool isSuccess = response.success;

后台写好的bool,可以用来判断是否登陆成功

然后登录界面就很简单了

private async void  OnLoginBtnClick()
    {
        var res = await ServerManager.Instance.Login(UserField.text, PasswordField.text);
        if (!res)
        {
            StartCoroutine(WrongText());
        }
        else
        {
            SceneManager.LoadScene(1);
        }
    }

直接判断你返回的bool就好了!

二、使用BestHTTP实现从后台获取数据(Get)

这个原理和上面是一样的,不过只是get数据

1:传入你的url链接到BestHTTP
2:使用回调函数来执行请求后的操作
3:使用匹配的数据类来解析内容

具体的代码如下:

private string dataURL = "http://cottonhouse.tianfuchuang.cn/admin/data/getData";
 private IEnumerator SendRequest()
    {
        HTTPRequest request = new HTTPRequest(new System.Uri(dataURL), OnRequestFinished);
        request.Send();
        yield break;
    }

    private void OnRequestFinished(HTTPRequest request, HTTPResponse response)
    {
        if (request.Exception != null)
        {
            Debug.Log("请求异常" + request.Exception.Message);
            return;
        }

        try
        {
            if (response.IsSuccess)
            {
            Debug.Log("response success!");
            //转为text
            string stringResponse = response.DataAsText;

            //转为二进制数组
            //byte[] results = response.Data;

            //以WebDataClass的数据类来解析获取到的数据
            dataClass = JsonMapper.ToObject<WebDataClass>(stringResponse);
            if (dataClass != null)
            {
                Debug.Log("解析成功");
             }
}
}

这里的代码和上面的不同是,这里采用了回调函数OnRequestFinished()

其他是一样的

以上就是使用BestHTTP插件实现Post和Get操作的功能!文章来源地址https://www.toymoban.com/news/detail-854125.html

到了这里,关于Unity后台登录/获取数据——BestHTTP的使用Get/Post的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity 制作登录功能01-创建登录的UI并获取输入内容

    导入插件TextMesh Pro  这里用的是输入框侦听函数,所有UI都可以使用侦听函数 ,需要注意TMP_InputField 这个类是UI中导入的一个插件TextMesh Pro!在代码中需要引用using TMPro; 命名空间! 下面是代码:  

    2024年02月04日
    浏览(31)
  • Unity使用leancloud开发弱数据联网游戏(注册、登录和云端数据存读)

    最近,由于开发需要数据存储服务,就跑去Bmob看看,不看不要紧,发现自己以前创建的应用的数据存储服务居然变成非永久的了,只有一年的免费时间,而且还过期了。这对于我将要开发的软件时很不友好的;因此,我就只能去找与Bmob同类型的后端云服务,就是我接下来要

    2023年04月23日
    浏览(27)
  • Unity微信小游戏登录授权获取用户信息

    最近需要在接微信获取用户信息的功能,在小游戏官方API中翻找资料。不得不说官方接口很多、很全,但是真的很乱而且部分遗漏。 对于不明所以的人来说,真的非常不友好。文档一堆堆的罗列下来,有些也不知道要怎么组合使用。 文档下有不少留言也是“骂骂咧咧”想必

    2024年02月02日
    浏览(48)
  • 爬虫篇-小程序后台数据获取【附源码】

      鉴于网上以及视频教材很多都是直接用cookie写到了headers中,这样验证是会过期的,我这里直接模拟浏览器请求。   内部系统小程序后台爬虫应用,因此没有账号的可以学习思路,有账号的可以考虑实战爬虫。   首先会分析整个小程序从一开始登陆页面请求分析到数

    2024年02月09日
    浏览(26)
  • Java后台实现网站微信扫码登录功能,获取用户openid,及微信用户信息(小程序码方案),关联微信小程序(个人主体小程序也可以)

    目录 前言 下面展示操作流程 注册微信小程序 通过后台获取小程序码 前端处理 时序图理解 方案实现步骤 前言 很多业务场景之下我们需要实现  微信扫码登录  的需求,如: 同步网站与小程序的用户数据 。 需要获取用户微信相关基本信息,如头像、id等 实例:小程序上的

    2024年02月02日
    浏览(44)
  • Python 字典 get()函数使用详解,字典获取值

    「作者主页」: 士别三日wyx 「作者简介」: CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」: 小白零基础《Python入门到精通》 get() 可以根据键 「获取值」 语法 参数 key :(必选)指定要搜索的键 value :(可选)如果键不存在,就返回

    2024年02月14日
    浏览(26)
  • 网页数据采集HTTP Get,Post登录提交数据--VBS之Microsoft.XMLHTTP对象

    MSXML中提供了Microsoft.XMLHTTP对象,能够完成从数据包到Request对象的转换以及发送任务。 创建XMLHTTP对象的语句如下: Set objXML = CreateObject(\\\"Msxml2.XMLHTTP\\\") 或 Set objXML = CreateObject(“Microsoft.XMLHTTP”) \\\' Or, for version 3.0 of XMLHTTP, use: \\\' Set xml = Server.CreateObject(\\\"MSXML2.ServerXMLHTTP\\\") 对象创建后调

    2024年02月06日
    浏览(30)
  • 微信小程序-绑定数据并在后台获取它

    如图 遍历列表的过程中需要绑定数据,点击时候需要绑定数据 这里是源代码 这里有几个点注意: 1、代码别写到最外层的view上了,传不到这个button上 data-product-id=“{{item.productId}}” XXXXX 2、如何点击按钮获取当前的 商品id和上下架状态呢? catchtap=“onShelf” 或者 bindtap=“on

    2024年02月21日
    浏览(31)
  • Vue实现select下拉框二级联动数据后台获取

    一、二级联动在vue中实现selected的二级联动取其实很简单,可以使用select下拉框的表单改变事件。  @change在表单内容发生改变时出发方法。然后在下面的methods中声明方法,通过this.form.ks获取到当前下拉框的数据。  然后调用后两级访问数据库的方法,获取到联动的数据,添加

    2024年02月16日
    浏览(31)
  • ASP.Net Core Web API结合Entity Framework Core框架(API的创建使用,接口前端权限设置,前端获取API的Get,post方法)(程序包引用以及导入数据库)

    目录 1. Web Api 程序包引用 2. Web Api 的创建与Http类型的介绍 2.1 ASP.Net Core Web API项目的创建 2 .2  API接口的创建 2.3 HttpGet和HttpPost类型的区别 3.接口权限设置 4.HttpGet方法和HttpPOst方法 5.前端中用HttpGet/Poset获取接口数据 6.EF框架——配置数据库链接字符串(即将数据库中的表导入项

    2024年02月08日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包