和服务器建立联系——6.10山大软院项目实训1

news2024/11/26 12:16:35

下面介绍我如何在自己的项目中,根据aigc组的接口(如下图),在Unity中和服务器建立联系并发出接受请求的:

这是一个通过HTTP POST方法调用的接口,需要发送JSON格式的数据。在Unity中实现这样的功能,您可以使用Unity的UnityWebRequest类来发送HTTP请求。以下演示如何在Unity中构造并发送这个API请求:

using UnityEngine;
using UnityEngine.Networking;
using System.Text;
using System.Collections;

public class APIClient : MonoBehaviour
{
    private string apiUrl = "https://your-server-url/generate_response"; // 替换为实际的API端点URL

    void Start()
    {
        StartCoroutine(SendRequest("You are a helpful assistant.", "Can you help me with my homework?"));
    }

    IEnumerator SendRequest(string system, string user)
    {
        // 创建一个新的JSON对象
        string jsonPayload = JsonUtility.ToJson(new APIRequestData
        {
            system = system,
            user = user
        });

        // 创建一个新的UnityWebRequest,并设置方法和上传的JSON数据
        using (UnityWebRequest webRequest = new UnityWebRequest(apiUrl, "POST"))
        {
            byte[] jsonToSend = new UTF8Encoding().GetBytes(jsonPayload);
            webRequest.uploadHandler = new UploadHandlerRaw(jsonToSend);
            webRequest.downloadHandler = new DownloadHandlerBuffer();
            webRequest.SetRequestHeader("Content-Type", "application/json");

            // 等待请求发送并接收响应
            yield return webRequest.SendWebRequest();

            if (webRequest.result == UnityWebRequest.Result.ConnectionError || webRequest.result == UnityWebRequest.Result.ProtocolError)
            {
                Debug.LogError("Error: " + webRequest.error);
            }
            else
            {
                Debug.Log("Received: " + webRequest.downloadHandler.text);
            }
        }
    }

    // 用于序列化JSON的类
    [System.Serializable]
    public class APIRequestData
    {
        public string system;
        public string user;
    }
}
  1. APIRequestData 类:这是一个用于序列化JSON数据的辅助类。这个类的结构根据API所需的字段进行设计,包含systemuser两个字段。

  2. SendRequest 方法:这个协程方法构建JSON字符串,发送HTTP POST请求,并接收响应。它使用UnityWebRequest来发送请求,并设置Content-Typeapplication/json

  3. 错误处理:如果连接或协议出错,它会在控制台输出错误信息。

  4. 响应输出:如果请求成功,它会输出服务器的响应文本。

使用说明:

  • 确保将这个脚本附加到Unity场景中的一个活动GameObject上。
  • 替换apiUrl变量的值为您的实际API端点URL。
  • 运行Unity场景,观察控制台输出以验证API调用的响应。

这样就可以在Unity中使用这个API了。确保服务器端点可访问,并正确处理请求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1835147.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[AI Google] TimesFM:AI预测股市价格,能否助我财务自由?

今天我偶然发现了一个名为TimesFM的模型,它能够预测时间序列数据。于是我心中冒出了一个大胆的想法:如果这个模型可以预测股票价格,那么我是否能借此成为股神呢? 介绍 TimesFM(时间序列基础模型)是由谷歌…

基于Spring Boot+VUE旅游管理系统

1管理员功能模块 管理员通过点击后台管理,进入页面可以输入用户名、密码、角色进行登录相对应操作,如图1所示。 图1管理员登录界面 管理员通过点击后台管理,进入页面可以填写首页、个人中心、用户管理、旅游方案管理、旅游购买管理、系统管…

华为---RIP路由协议的汇总

8.3 RIP路由协议的汇总 8.3.1 原理概述 当网络中路由器的路由条目非常多时,可以通过路由汇总(又称路由汇聚或路由聚合)来减少路由条目数,加快路由收敛时间和增强网络稳定性。路由汇总的原理是,同一个自然网段内的不同子网的路由在向外(其他…

【接口自动化测试】第一节.接口自动化测试基础和框架介绍

文章目录 前言一、接口自动化基础 1.1 接口自动化基础介绍 1.2 接口自动化测试流程 1.3 选取自动化测试用例 1.4 搭建自动化测试环境二、接口自动化测试框架 2.1 接口自动化框架设计思路 2.2 定义项目目录结构总结 前言 一、接口自动化基础 1.1…

企业中没有有效的PMC管理会是什么样子?

众所周知,有效的产品物料控制(PMC)管理对于企业的稳健发展至关重要。然而,如果企业忽视了PMC的重要性,或者其管理不到位,那么企业将面临一系列严重的问题,从生产线混乱到效益滑坡,甚…

16. 一个I/O项目:构建命令行程序(上)

标题 一、功能二 、接受命令行参数三、 读取文件四、重构改进模块性和错误处理4.1 二进制项目的关注分离4.2 提取参数解析器4.3 创建一个Config的构造函数4.4 传参错误处理4.5 从main中提取逻辑4.6 将代码拆分进crate 一、功能 grep 最简单的使用场景是在特定文件中搜索指定字…

大模型应用实战2——大模型知识体系、GLM4的function calling功能及agents开发

前面通过glm4作为引子,现在来谈大模型知识体系结构是怎么样的 两个研究方向:开发特定的agents/强化大模型在某个领域的能力,后一个的大致方法如下图 GLM4的function calling功能: 需要解决的问题:不能解决大数运算&a…

香港优才计划是坑人的吗?申请的人都在说……

大家好啊!最近看到超多小伙伴私信我说申请香港优才被“坑”了,被割了一波韭菜🌿心疼你们!作为一个通过这个计划顺利移民香港的老司机🚗,我必须出来吐槽一下,并且把我的成功经验分享给大家&#…

天锐绿盾 | -公司电脑文件防泄密软件

天锐绿盾是一款专为企业设计的电脑文件防泄密系统,它结合了多种安全功能,旨在从源头上保障企业数据的安全。 www.drhchina.com 以下是关于天锐绿盾的详细介绍: 一、产品概述 天锐绿盾,又名绿盾信息安全管理软件,是一…

【达梦数据库】typeorm+node.js+达梦数据库返回自增列值

1.配置环境,下载依赖包 typeorm init --name test22 --database mysql typeorm-dm,uuid,typeorm2,修改连接信息 修改src/ data-source.ts 文件 连接dm,可参考刚刚安装typeorm-dm 模块中的 README.md 3.修改自增信息 /* 修改前*/PrimaryGen…

FileZilla证书过期,导致FileZilla Client联不上,或者老断开的处理

1、先到服务器上去重新生成一下证书,并且覆盖掉老的证书。edit--settings 输入信息,并且确认生成新的证书: 2、Client连接的时候,弹出证书信任,点击确认。 这样第一次连接,然后访问目录全都是好的&#xff…

解决此平台不支持虚拟化的 Intel VT-x/EPT故障问题

一、问题描述 当我们在VMware Workstation虚拟机上【启用】虚拟系统(如:Windows10)所在的虚【拟机设置】【处理器】【虚拟化引擎】下面的【虚拟化 Intel VT-x/EPT 或AMD-V/RVI(V)】内容后,在启动虚拟系统时,虚拟系统无法启动,且弹出【此平台不支持虚拟化的 Intel VT-x/EP…

算法课程笔记——单调栈单调队列

算法课程笔记——单调栈&单调队列

多协议接入/GB28181/GAT1400协议/安防综合管理系统EasyCVR报错version`GLIBCXX_3.4.19‘not found如何处理?

多协议接入/GB28181/GAT1400协议/安防综合管理系统EasyCVR视频汇聚平台能在复杂的网络环境中,将前端设备统一集中接入与汇聚管理。智慧安防/视频存储/视频监控/视频汇聚EasyCVR平台可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、…

【自动驾驶】串口通信控制与反馈

文章目录 串口通信控制与反馈通讯协议上行数据帧解析下行数据帧解析串口通信控制与反馈 通讯协议 上行数据指的是机器人底盘向上位机发送的状态数据, 下行数据指的是上位机向机器人底盘发送的控制信息。 上行数据帧解析 机器人运动底盘通过串口发送的数据包格式,如下表所…

练习时长 1 年 2 个月的 Java 菜鸡练习生最近面经,期望25K

面经哥只做互联网社招面试经历分享,关注我,每日推送精选面经,面试前,先找面经哥 自我介绍:本人是练习时长 1 年 2 个月的 Java 后端菜鸡练习生。下面是我最近面试的面经: 百度 一面 约1h时间:2…

MJ绘画设计基础——如何玩转midjourney?

抽卡的时候经常有一个问题,就是整张图都还不错,但是某些地方有些小问题,比如说手很奇怪,比如下面这个图,哪都挺好看,就是左手有点问题。 这时候就可以局部重绘来拯救一下 第一次生成的图 点击图片下方的V…

黄仁勋加州理工毕业典礼演讲:人工智能是我们这个时代最重要的技术

英伟达公司首席执行官黄仁勋周五(6月14日)在加州理工学院(Caltech)毕业典礼上发表演讲,鼓励毕业生在逆境中努力,不断寻求新的机遇。 黄说,加州理工学院因其毕业生受人尊敬而闻名,如…

5G+北斗高精度定位终端技术,赋能千行百业应用

5G北斗高精度定位终端技术的融合,正以前所未有的精准度和实时性,为千行百业带来革命性的变革。从智慧城市的精细化管理,到智能交通的实时调度,再到精准农业的播种与收割,这一技术正不断拓宽其应用领域,为各…

驰为电脑软件卸载指南:轻松解决软件占用问题

驰为电脑作为一款性能出色的设备,用户在使用过程中难免会安装各种软件以满足不同的需求。然而,随着时间的推移,一些软件可能变得不再需要,或者我们可能需要更新到新版本。这时,如何有效地卸载不再使用的软件&#xff0…