当前位置: 首页 > news >正文

网站推广分析游戏程序开发

网站推广分析,游戏程序开发,wordpress 新页面打开空白,成都it外包公司http网络编程在ue5中实现 需求#xff1a;在unreal中实现下载功能#xff0c;输入相关url网址#xff0c;本地文件夹存入相应文件。 一、代码示例 1.Build.cs需要新增Http模块#xff0c;样例如下。 PublicDependencyModuleNames.AddRange(new string[] { Core在unreal中实现下载功能输入相关url网址本地文件夹存入相应文件。 一、代码示例 1.Build.cs需要新增Http模块样例如下。 PublicDependencyModuleNames.AddRange(new string[] { Core, CoreUObject, Engine, InputCore, HTTP });2.RuntimeFilesDownloaderLibrary.h文件 // Fill out your copyright notice in the Description page of Project Settings.#pragma once#include CoreMinimal.h #include UObject/Object.h #include Interfaces/IHttpRequest.h #include RuntimeFilesDownloaderLibrary.generated.hUENUM(BlueprintType, Category Runtime Files Downloader) enum DownloadResult {SuccessDownloading UMETA(DisplayName Success),DownloadFailed UMETA(DisplayName Download failed),SaveFailed UMETA(DisplayName Save failed),DirectoryCreationFailed UMETA(DisplayName Directory creation failed) }; DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams(FOnFilesDownloaderProgress, const int32, BytesSent, const int32, BytesReceived, const int32, ContentLength);DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnFilesDownloaderResult, TEnumAsByte DownloadResult , Result);UCLASS() class DOWNLOAD_API URuntimeFilesDownloaderLibrary : public UObject {GENERATED_BODY() public:UPROPERTY(BlueprintAssignable, Category Runtime Files Downloader)FOnFilesDownloaderProgress OnProgress;UPROPERTY(BlueprintAssignable, Category Runtime Files Downloader)FOnFilesDownloaderResult OnResult;UPROPERTY(BlueprintReadOnly, Category Runtime Files Downloader)FString FileURL;UPROPERTY(BlueprintReadOnly, Category Runtime Files Downloader)FString FileSavePath;UFUNCTION(BlueprintCallable, Category Runtime Files Downloader)static URuntimeFilesDownloaderLibrary* CreateDownloader();UFUNCTION(BlueprintCallable, Category Runtime Files Downloader)bool DownloadFile(const FString URL, const FString SavePath, float TimeOut 5); private:void OnProgress_Internal(FHttpRequestPtr Request, int32 BytesSent, int32 BytesReceived);void OnReady_Internal(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful); };3.RuntimeFilesDownloaderLibrary.cpp文件 #include RuntimeFilesDownloaderLibrary.h #include HttpModule.h #include Interfaces/IHttpRequest.h #include Interfaces/IHttpResponse.h //创建了一个URuntimeFilesDownloaderLibrary对象并将其添加到根对象防止系统自动回收 URuntimeFilesDownloaderLibrary* URuntimeFilesDownloaderLibrary::CreateDownloader() {URuntimeFilesDownloaderLibrary* Downloader NewObjectURuntimeFilesDownloaderLibrary();Downloader-AddToRoot();return Downloader; }bool URuntimeFilesDownloaderLibrary::DownloadFile(const FString URL, const FString SavePath, float TimeOut) {if (URL.IsEmpty() || SavePath.IsEmpty() || TimeOut 0){return false;}FileURL URL;FileSavePath SavePath;/*ue4.27旧版本弃用下列方法*//*TSharedRefIHttpRequest, ESPMode::ThreadSafe HttpRequest FHttpModule::Get().CreateRequest();*///4.27及以后使用如下方法TSharedPtrIHttpRequest, ESPMode::ThreadSafe HttpRequest FHttpModule::Get().CreateRequest();HttpRequest-SetVerb(GET);HttpRequest-SetURL(FileURL);//HttpRequest-SetTimeout(TimeOut);//监听事件OnProcessRequestComplete绑定OnReady_InternalOnRequestProgress绑定OnProgress_InternalHttpRequest-OnProcessRequestComplete().BindUObject(this, URuntimeFilesDownloaderLibrary::OnReady_Internal);HttpRequest-OnRequestProgress().BindUObject(this, URuntimeFilesDownloaderLibrary::OnProgress_Internal);// Process the requestHttpRequest-ProcessRequest();return true; }//监听事件 void URuntimeFilesDownloaderLibrary::OnProgress_Internal(FHttpRequestPtr Request, int32 BytesSent, int32 BytesReceived) {const FHttpResponsePtr Response Request-GetResponse();if (Response.IsValid()){const int32 FullSize Response-GetContentLength();OnProgress.Broadcast(BytesSent, BytesReceived, FullSize);} }void URuntimeFilesDownloaderLibrary::OnReady_Internal(FHttpRequestPtr Request, FHttpResponsePtr Response,bool bWasSuccessful) { RemoveFromRoot();Request-OnProcessRequestComplete().Unbind();if (Response.IsValid() EHttpResponseCodes::IsOk(Response-GetResponseCode()) bWasSuccessful){//IPlatformFile PlatformFile FPlatformFileManager::Get().GetPlatformFile();// FString Path, Filename, Extension;FPaths::Split(FileSavePath, Path, Filename, Extension);//查看文件夹没有则创建文件if (!PlatformFile.DirectoryExists(*Path)){if (!PlatformFile.CreateDirectoryTree(*Path)){OnResult.Broadcast(DirectoryCreationFailed);return;}}// 开启文件写入//通过PlatformFile.OpenWrite()函数打开文件句柄以便将下载的数据写入文件中。函数的参数是一个TCHAR类型的字符串表示文件的路径和文件名。//然后检查句柄是否成功打开。如果句柄成功打开就将HTTP请求响应中的数据通过FileHandle-Write()函数写入到文件中。IFileHandle* FileHandle PlatformFile.OpenWrite(*FileSavePath);if (FileHandle){// FileHandle-Write(Response-GetContent().GetData(), Response-GetContentLength());// delete FileHandle;OnResult.Broadcast(SuccessDownloading);}else{OnResult.Broadcast(SaveFailed);}}else{OnResult.Broadcast(DownloadFailed);} }二、蓝图示例 该蓝图在关卡中调用通过Event Begin Play事件监听行为当按下 按钮创建DOWNLOADER对象并执行下载功能下载时对下载行为进行监听包括RESULTSuccessDownload failedSave failedDirectory creation failed四种下载结果)和以下三个数据信息 · BytesSent 表示已发送的字节数指示已经发送到服务器的字节数。 · BytesReceived 表示已接收的字节数指示已从服务器接收到的字节数。 · FullSize 表示完整内容的长度指示需要下载的文件的总字节数。 最后通过BytesReceived/FullSize计算出百分号数据实现下载进度实时追踪下载完成后RESULT枚举信息输出。 三、效果展示 在蓝图中输入url和save path相关信息time out为响应时间设置。 下载过程实现监听下载完成后输出RESULT枚举类型。 最后本地文件夹成功下载http文件。
http://www.dnsts.com.cn/news/109673.html

相关文章:

  • 企业网站建设论文北海做网站网站建设
  • 玉环做企业网站wordpress视频略缩图
  • 导购网站怎么做wordpress颜色插件下载
  • 传播公司可以做门户网站吗aws服务器搭建wordpress
  • 聊城网站建设策划建设公司nginx配置wordpress
  • 模板网站优小程序商城开发商华网天下北京
  • asp.net mysql 网站开发做企业网站用哪个cms
  • 张家口网站建设帝国网站管理系统教程
  • 建设网站应该加什么服务织梦网站下载
  • 安徽全过程网站搭建案例广州澄网站建设公司
  • 门户网站建设自查北京建设银行支行查询官方网站
  • 网络营销网站类型梯子国外服务器
  • 网站和微信公众号建设建筑网官网软件
  • 大连零基础网站建设教学服务网络优化工程师发展前景
  • 苏州建设厅网站首页3c渠道网
  • 公司网站模板源代码html代码app
  • 有关外贸的网站有哪些视频软件制作app
  • 滨州网站建设有实力电子商务毕业设计网站
  • 思明区建设局网站永定路网站建设
  • 钓鱼网站查询系统网站免费搭建平台
  • 网站网页制作企业如何把地图放到网站上
  • 钓鱼网站制作教程百度搜索风云排行榜
  • 网站做seo必要的结构wordpress用thinkphp
  • theme my login wordpress长沙百度seo排名
  • 门户网站的建设要求设计专业哪个学校好
  • 利用帝国cms网站建设北京知名互联网公司排名
  • 东山网站制作ci和vi设计的区别
  • 建设网站以后怎么让百度收录呢建筑新型组合塑料模板
  • 自动化系统网站建设提供信息门户网站定制
  • django做网站好吗金融贷款和网站建设哪个赚钱