UE5HTTP插件
文档 下载 评论(0)

UE4插件名: SimpleHTTP

版本 1.1

目录

  1. 前置工作
  2. 上传资源
  3. 下载资源
  4. 删除资源
  5. SimpleHTTP源码接口

哈喽大家好,我叫人宅,这节课我们来讲解一下SimpleHTTP使用技巧;

该插件目前提供了对web服务器进行上传下载和删除的函数接口,分别是:

        bool GetObject(const FString &URL, const FString &SavePaths);
	bool PutObject(const FString &URL, TArray<uint8> &Data);
	bool PutObject(const FString &URL, const FString &LocalPaths);
	bool PutObject(const FString &URL, TSharedRef<FArchive, ESPMode::ThreadSafe> Stream);
	bool DeleteObject(const FString &URL);

该插件使用上也是非常方便,无需繁杂的注册环节,即可使用:

1.前置工作

在使用该插件需要包含头文件

#include "SimpleHttpManage.h"

在你需要包含的模块.Build.cs

SimpleHTTP

一切准备就绪 就可以大胆的使用本插件了;


2.上传资源

我们拿阿里云OSS服务端做例子

        //域名 wersdfd.oss-cn-beijing.aliyuncs.com
	//格式 https://<域名>/<对象名>/<对象名>/...
	//https://wersdfd.oss-cn-beijing.aliyuncs.com/Hello.zip
	FString URL = "https://wersdfd.oss-cn-beijing.aliyuncs.com/Hello.zip";
	FString LocalPaths = "F:/PJ/TestOSS/SimpleHTTP.zip";
	if (!FSimpleHttpManage::Get()->PutObject(URL, LocalPaths))
	{
		check(0);
	}

3.下载资源

	FString URL = "https://wersdfd.oss-cn-beijing.aliyuncs.com/Hello.zip";
	FString LocalPaths = "F:/PJ/TestOSS/WWWEEEERRR.zip";
	if (!FSimpleHttpManage::Get()->GetObject(URL, LocalPaths))
	{
		check(0);
	}

4.删除资源

        FString URL = "https://wersdfd.oss-cn-beijing.aliyuncs.com/Hello.zip";

        if (!FSimpleHttpManage::Get()->DeleteObject(URL))
	{
		check(0);
	}

5.SimpleHTTP源码接口

#pragma once

#include "CoreMinimal.h"
#include "Interfaces/IHttpRequest.h"
#include "Interfaces/IHttpResponse.h"

class SIMPLEHTTP_API FSimpleHttpManage
{
public:
	FSimpleHttpManage();
	~FSimpleHttpManage();

	static FSimpleHttpManage *Get();
	static void Destroy();
	
	bool GetObject(const FString &URL, const FString &SavePaths);
	bool PutObject(const FString &URL, TArray<uint8> &Data);
	bool PutObject(const FString &URL, const FString &LocalPaths);
	bool PutObject(const FString &URL, TSharedRef<FArchive, ESPMode::ThreadSafe> Stream);
private:

	void HttpRequestComplete(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bConnectedSuccessfully);
	void HttpRequestProgress(FHttpRequestPtr Request, int32 BytesSent, int32 BytesReceived);
	void HttpRequestHeaderReceived(FHttpRequestPtr Request, const FString& HeaderName, const FString& NewHeaderValue);

	void Print(const FString &Msg,float Time = 10.f,FColor Color = FColor::Red);
private:
	static FSimpleHttpManage	*SimpleHttp;
	FCriticalSection			Mutex;
	FString						TmpSavePaths;
};

可以看得出非常简单,而且易上手,好,那本次的分享到此结束,谢谢。


更新日记

2021.11.4: 5.0-HTTP 该插件增加了中文的URL支持。可以进行特殊字符的文件下载等。

2021.11.7:为5.0-HTTP请求分离的子类,便于维护;

2021.11.22为5.0-HTTP增加了下载暂停,取消下载,优化HTTPClient代码结构,增加了句柄获取,执行请求后再执行句柄获取可以获取上次请求的句柄,该句柄可以为HTTP请求做更精细的控制。

发表回复

一.商业版本和学习版本的对比

二.您还未登陆哦

三.该资源出自以下课程

四.社区版本