[ UE4 ] 通过和风天气获取天气信息

总结:在UE4 中通过Http请求访问和风天气API链接拿到天气数据
2021/11/02更新:
如果想更简便的实时获取天气相关信息可以结合商城免费插件Varest使用
具体方法可以去看这个博主的文章,有详细流程:
UE4 实时获取天气信息

更新:
此处代码是用的4.25版本写的,如果你是使用的4.26版本,需要将

TSharedRef<IHttpRequest> Request = FHttpModule::Get().CreateRequest();

改为

TSharedRef<IHttpRequest, ESPMode::ThreadSafe> Request = FHttpModule::Get().CreateRequest();

步骤:
1.注册和风天气账号(自己去看官方介绍,官方有详细的API文档,有免费个人版使用,链接我放到最后面了)
这是拿到的相关数据,下面创建的结构体和后面数据筛选都是在这个基础上来的,马赛克部分是需要你自己去注册之后创建相关应用的Key,填上就可以查询了,后面的代码也用星号代替了(到时候将你的Key替换那段星号即可)。
在这里插入图片描述

2.创建UE4项目,创建代码(我这里将功能写在蓝图函数库中的)
3.在Bulid.cs添加HTTP API和Json相关的引用
PublicDependencyModuleNames.AddRange(new string[] {“HTTP”,“Json”, “JsonUtilities”});
在这里插入图片描述
4.加头文件"Http.h",“Json.h” (如果只是单纯的在项目中使用,好像不加也能编译过去,但是如果需要将该功能做成插件打包的话就必须得加,不然会打包失败)

5.创建需要信息的结构体(方便拿来存放等会需要在蓝图中使用的数据,要什么就往里面加什么)
在这里插入图片描述
6.创建HTTP请求
在这里插入图片描述
7.在.cpp中初始化上面创建的结构体
FWeatherInfo WeatherData;

8.在.cpp中写入功能
GetWeatherInfo:

		FString ApiUrl = " ";
		/* 将中文(城市名)进行百分比编码 */
		FString CityUrl = FGenericPlatformHttp::UrlEncode(City);
		/* 和风天气API链接 */
		ApiUrl = "https://free-api.heweather.net/s6/weather?location=" + CityUrl + "&key=*****************";

	TSharedRef<IHttpRequest> Request = FHttpModule::Get().CreateRequest();
	Request->OnProcessRequestComplete().BindStatic(UGetRealTimeWeatherInfo::OnResponseReceived);
	//This is the url on which to process the request
	Request->SetURL(ApiUrl);
	Request->SetVerb("GET");
	Request->SetHeader("Content-Type", TEXT("application/json;charset=UTF-8"
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值