当前位置: 首页 > 综合 > 正文

UE4 http教程-焦点滚动

来源:哔哩哔哩    时间:2023-06-04 06:07:23

1.概述

http是一种广泛使用的互联网协议,即使在游戏开发中,也是被广泛使用,进行网络之间数据传输。UE4是目前市场上主流的游戏引擎之一,通过HTTP模块提供了http相关功能api。因此,本文将简单介绍如何在UE4中使用http通信。

2. 代码示例


(资料图)

下面将以一个简单的例子来介绍HTTP模块的使用

(1)新建项目,命名为TestHttp

(2)新建Actor类,命名为HttpActor(此处为了展示方便,继承了AActor,实际使用中根据需要继承自其他的类)

(3)在TestHttp.Build.cs文件中添加"HTTP"模块

模块名.build.cs文件主要添加当前模块所依赖的其他模块,避免引擎编译过程中出错。

UE4中,如果在B模块中使用A模块的函数,除了include相关的头文件,还得在B模块的B.build.cs文件中添加"A"模块,此处即”HTTP"。

如果没有添加,则编译时会产生如下链接错误(UE4中绝大部分链接错误都是没有添加依赖模块导致的)

(4)封装http请求代码

如下,在AHttpActor类中定义了HttpGet,HttpPost和OnRequestComplete三个函数

HttpGet函数,向输入的URL发起GET请求

HttpPost,以POST的方式,向InURL上传InContentString内容,

需要注意POST消息主体的编码格式,笔者在使用过程中,消息主体是序列化后的Json字符串,因此,需要设置Header中的"Content-Type"为Json编码形式,否则UE4 POST请求会引起程序崩溃(crash)。

原因在于,HTTP模块内部,有以下check,即当HttpRequest没有设置"Content-Type"的编码格式且content内容不是URLEncoded编码时,check不通过,而产生崩溃

OnRequestComplete函数,可以理解为请求结束时的回调函数,可以根据实际需要编写相关逻辑,这里为了演示简单,将响应内容显示的屏幕上。

(5)创建以AHttpActor为基类的蓝图

在蓝图类中创建URL变量,并赋值为百度大模型“文心一言”的网址,

在Begin事件中,调用HttpGet函数

运行游戏,可以看到响应内容被打印在屏幕上

3. 参考文档

https://blog.csdn.net/yb0022/article/details/76383297

https://forums.unrealengine.com/t/why-does-the-engine-crash-when-i-post-data-to-a-server/409956

https://imququ.com/post/four-ways-to-post-data-in-http.html

X 关闭

推荐内容

最近更新

Copyright ©  2015-2022 太平洋机械网版权所有  备案号:豫ICP备2022016495号-17   联系邮箱:93 96 74 66 9@qq.com