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

下面介绍我如何在自己的项目中,根据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端点URLvoid 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.mzph.cn/web/29249.shtml

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

相关文章

C++语法15 多分支结构(if多分支与switch结构)

if else if else 多分支结构基本框架 if(条件1)语句1; //满足条件1就执行 else if(条件2)语句2; //不满足条件1,但是满足条件2执行 else if (条件3)语句3; //不满足条件1和条件2&#x…

HACH哈希紫外可见光分光光度计维修DR6000

DR3900可见分光光度计内置准双光束光学系统,自动校准波长,该可见光分光光度计预置200多个用户程序,几乎覆盖常规水质参数,彩色触屏搭载中文操作界面,可自动分析检测并存储2000组实验数据,是一款测量准确的可…

掌控Linux-Conda环境安装终极指南

Linux-Conda环境安装教程 一、引言1.1. conda的作用与优势优势: 1.2. 简述conda在Linux系统中的重要性重要性: 二、准备工作2.1. 系统要求与兼容性Linux发行版支持情况硬件资源需求 2.2. 安装前的必要工具wget或curl的安装必要的开发库 三、下载与安装Mi…

HTTP 415错误状态码

HTTP 415错误状态码是指"Unsupported Media Type"(不支持的媒体类型)。这通常发生在客户端向服务器发送请求时,请求中包含的媒体类型(例如Content-Type头部)不被服务器支持或识别的情况下。 解决方法&#…

python-开学?

[题目描述] 小执:终于可以开学啦!好开心啊! 小理:你没看新闻吗,开学日期又延后了。 小执:𝑁𝑂𝑂𝑂𝑂𝑂𝑂𝑂&am…

Ubuntu基础-vim编辑器

目录 前言: 一. 安装 二. 配置 三. 基本使用 1.使用 Vim 编辑文本文件 2.代码编辑 3.多窗口编辑 四. 总结 前言: Vim 是从 VI 发展出来的一个文本编辑器,具有代码补充、错误跳转等功能,在程序员中被广泛使用。它的设计理念是命令的组合&#xff…

APS-SCM联动:开创生产调度与供应链管理新篇章

在当今激烈的市场产品竞争环境下,企业不仅需要灵活高效的内部生产流程,更需具备对外部环境快速响应的能力,从而保证产品保质保量的生产完成,快速占据更多的市场份额。正是在这样的背景下,APS(Advanced Plan…

数据库、中台、报表平台之间的关系

我最近在接触报表平台和中台,发现他们跟我平常用的数据库不是一个东西。然后,我开始了摸索他们的过程,终于,我在理清他们的关系以后,简单写一个入门级的区分。 数据库: 定义: 数据库是被长期存…

主流电商平台API接口【京东商品详情按关键字搜索商品按图搜索京东商品(拍立淘)获得店铺的所有商品】

主流电商平台商品接口在电商企业中的应用可以帮助企业实现信息同步、库存管理、订单处理、数据分析和营销推广等多重功能,提升运营效率、优化用户体验,进而推动业务增长。 jd API 接入说明 API地址:申请调用KEY地址 调用示例: 参数说明 通用…

查询Kafka集群中消费组(group)信息和对应topic的消费情况

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] &#x1f4f1…

推动 AI/ML 创新:使用 MinIO 的高性能对象存储构建特征存储

MinIO 为全球 S3 和对象存储设定了标准,并已成为实现 AI 代理和功能存储集成的关键参与者。随着组织努力利用 AI 的力量来推动创新并获得竞争优势,高效数据管理的重要性以及将 AI 代理无缝集成到现有工作流程中的能力变得至关重要。在本文中,…

IntelliJ IDEA 2024.1安装_idea2024.1版本激 活 码分享

一:IDEA官方下载 ①如题,先到IDEA官方下载,简简单单 ②IDEA官方:IntelliJ IDEA – the Leading Java and Kotlin IDE 二:获取脚本 https://www.yuque.com/fengye-cyk1s/dxii3c/orbl5ruhvm7m3s4g 🌟获取完…

Web应用安全测试-权限缺失

Web应用安全测试-权限缺失 Flash跨域访问 漏洞描述:flash跨域通信,依据的是crossdomain.xml文件。该文件配置在服务端,一般为根目录下,限制了flash是否可以跨域获取数据以及允许从什么地方跨域获取数据。举个例子: 1、…

华为全流程全要素研发项目管理实践

在当前竞争激烈的市场环境中,企业要想在技术研发和项目管理上取得突破,必须建立健全的管理体系。本文将深入探讨华为全流程全要素研发项目管理的实践,从项目管理的定义、目标管理到具体的执行过程,全面解析如何在研发项目中实现高…

在得物的小程序生态实践

一、前言 提起微信小程序,相信所有人都不陌生,下面这个典型使用场景你一定经历过: 餐馆落座——微信扫桌角小程序码——使用微信小程序点餐🍔 微信小程序(下文简称:小程序)作为一种在微信平台…

【前端取不到cookie的的原因】http-only

某条cookie有http-only属性时,下面两种方法都取不到,还是改需求吧,别取了 1、 npm install js-cookie --save import Cookies from js-cookie let cookieValue Cookies.get(name)2、document.cookie

IAST面面观 | IAST强化越权检测能力,提升系统安全性

什么是越权漏洞 越权漏洞是一种常见的逻辑安全漏洞。越权漏洞指的是攻击者利用系统中的漏洞,获得超过其正常权限的访问权限,执行未授权操作。 越权漏洞主要分为两种类型:水平越权(横向越权)和垂直越权(纵…

刷代码随想录有感(107):动态规划——01背包/最后一块石头的重量||

题干&#xff1a; 代码&#xff1a; class Solution { public:int lastStoneWeightII(vector<int>& stones) {vector<int>dp(15001, 0);int sum 0;for(int i : stones){sum i;}int target sum / 2;for(int i 0; i < stones.size(); i){for(int j targ…

AI + 3D:用单个图像和文本提示创建可交互的3D世界

你是否曾经梦想过只需一张照片和一些简单的文字描述,就能立即进入一个生动的3D虚拟世界?今天,我们将介绍一个革命性的技术,它就像是一台神奇的3D场景制造机,能够根据你的想象快速构建出令人惊叹的虚拟空间。 一、技术概览 这项技术不仅仅是一个简单的图像到3D的转换工具…