“喂,是函数嘛 ?我是http,我需要帮助 ”

Part1前言

http请求是最常见的通信协议,本文主要介绍了如何基于UE5的HTTP插件实现仅仅通过一个蓝图函数即可实现http客户端请求。

Part2HTTP插件调用流程

本章介绍http插件的使用流程。

1增加依赖

在Build.cs中添加插件的依赖

PrivateDependencyModuleNames.AddRange(new string[] { "HTTP" });

2头文件引用

#include "Runtime/Online/HTTP/Public/Http.h"

3创建Requet对象

TSharedRef Request = Http->CreateRequest();

4设置url地址

Request->SetURL(ApiBaseUrl + Subroute);

5设置http头内容

这里可以设置校验的token

Request->SetHeader(TEXT("User-Agent"), TEXT("X-UnrealEngine-Agent"));
Request->SetHeader(TEXT("Content-Type"), TEXT("application/json"));
Request->SetHeader(TEXT("Accepts"), TEXT("application/json"));

6设置http的方法

可以设置get方法或者post方法

Request->SetVerb("GET");
Request->SetVerb("POST");

7设置发送的内容

Request->SetContentAsString(ContentJsonString);

8设置回调函数

这里绑定了ResponseIsValid函数,来处理应答的数据

Request->OnProcessRequestComplete().BindUObject(this, &AHttpService::ResponseIsValid);
bool ResponseIsValid(FHttpResponsePtr Response, bool bWasSuccessful);

9发起请求

Request->ProcessRequest();

通过上述9个步骤即可完成整个C++的http的请求。

Part3InHttpClient

我们基于上述的调用流程,进行了二次封装,封装成了适合蓝图使用的http插件。插件github地址:https://github.com/inveta/InHttpClient 整个插件基于UE C++的http库封装的蓝图http库,只需要一个函数即可完成http的调用。

10baseurl相同使用方法

针对前后端分离架构,通过设置baseurl来设置服务器的ip地址,然后后续调用只需要设置subroute即可。可以通过AddHeader来添加token验证这种http头信息。
注意:这个库只支持设置一个baseurl。GetHttpRequest方法和PostHttpRequest方法可以多次调用。使用示例如下:

651e0e40e16e9bc4c32abb2e1951b372.png fa50f03d1c2a63acf88f8a950c8eb394.png

11多个不同baseurl使用方法

另外考虑到能够兼容不同baseurl地址的http请求,我们还设计了带有baseurl参数的http请求,同样一个函数搞定了所有。
GetHttpRequestWithBaseUrl方法和PostHttpRequestWithBaseUrl方法可以多次调用。

94f78ec9f822b2dfcb351afefd71b123.png f25e78c967ac5808e8232ff106d99246.png

Part4总结

本文主要介绍了如何基于UE5的http插件,实现了只需要一个函数即可完成http的调用蓝图插件。

Part5关于IN VETA

IN VETA是一支由建模、美术、UE5组成的年轻团队。

796e1868a4e5d7cff839f0f4c92dcaa8.jpeg

我们的开源项目:
https://github.com/inveta

我们致力于三维数字孪生技术分享与研发。
欢迎与各界朋友一起探讨技术与商务合作,一起推动数字孪生的发展。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值