【UE4学习】16_http访问PHP获得Json测试
来源:互联网 发布:淘宝 正义哥 编辑:程序博客网 时间:2024/06/03 15:24
简介
本文主要通过http访问php获取json包进行小测试,该源码是以插件形式编写,此处记录主要部分的源码。通过 json php sql,可以实现登录,数值交互等功能。
环境:
win10 64bitUE4.15
————————————————————————
1. .cs 加入需要调用的模块HTTP、Json
PublicDependencyModuleNames.AddRange(new string[]{"Core","CoreUObject","Engine", "HTTP", "Json"// ... add other public dependencies that you statically link with here ...});
2. .h头文件类声明,主要暴露给蓝图用,记得包行Http.h 和 json.h
UCLASS(BlueprintType, Blueprintable)class JSONPLUGIN_API UJsonFunction : public UObject{GENERATED_UCLASS_BODY()UFUNCTION(BlueprintCallable, Category = "MyJson2")virtual void MyHttpCall(FString URL);UFUNCTION(BlueprintCallable, Category = "MyJson2")static UJsonFunction* ConstructJsonObject();void OnRequestReceived(FHttpRequestPtr request, FHttpResponsePtr response, bool bWasSuccessful);};
3. .cpp实现
UJsonFunction* UJsonFunction::ConstructJsonObject(){return NewObject<UJsonFunction>();}void UJsonFunction::MyHttpCall(FString URL){TSharedRef<IHttpRequest> request = FHttpModule::Get().CreateRequest();GEngine->AddOnScreenDebugMessage(1, 2.0f, FColor::Green, FString::Printf(TEXT("%s"), *URL));request->SetVerb("GET");request->SetURL(URL);//request->SetHeader(TEXT("Content-Type"), TEXT("application/json; charset=utf-8"));request->OnProcessRequestComplete().BindUObject(this, &UJsonFunction::OnRequestReceived);request->ProcessRequest();}void UJsonFunction::OnRequestReceived(FHttpRequestPtr request, FHttpResponsePtr response, bool bWasSuccessful){TSharedPtr<FJsonObject> jsonObj;TSharedRef<TJsonReader<>> jsonReader = TJsonReaderFactory<>::Create(response->GetContentAsString());if (!bWasSuccessful) {UE_LOG(LogJson, Error, TEXT("Response was invalid! Please check the URL."));// Broadcast the failed eventreturn;}FString result = response->GetContentAsString();GEngine->AddOnScreenDebugMessage(1, 2.0f, FColor::Green, FString::Printf(TEXT("%s"), *result));UE_LOG(LogTemp, Warning, TEXT("Json: %s"), *result);if (FJsonSerializer::Deserialize(jsonReader, jsonObj)){int32 recievedInt = jsonObj->GetIntegerField("myRank");GEngine->AddOnScreenDebugMessage(1, 2.0f, FColor::Green, FString::FromInt(recievedInt));UE_LOG(LogTemp, Warning, TEXT("myRank: %d"), recievedInt);FString name = jsonObj->GetStringField("name2");GEngine->AddOnScreenDebugMessage(1, 2.0f, FColor::Green, name);UE_LOG(LogTemp, Warning, TEXT("myRank: %s"), *name);}}
4. php部分的代码
<?php//get_userinfo.phpif(date_default_timezone_get() != "Asia/Shanghai") {date_default_timezone_set("Asia/Shanghai");}$func=$_GET['fun'];if ('search'==$func) {$arrayName = array('myRank' =>12 ,'name2'=>"PHP Json Test.");echo json_encode($arrayName);?>
5.效果
给自己的源码(点击打开链接)
参考:
https://wiki.unrealengine.com/JSON_Query
0 0
- 【UE4学习】16_http访问PHP获得Json测试
- 【UE4学习】17_Socket测试
- Android学习笔记_HTTP
- 黑马程序员_学习笔记16_Http协议初探
- android json访问php webservice
- UE4获得机器码
- UE4 获得player id
- UE4学习笔记16th
- JSON PHP学习
- 学习ue4
- ue4 学习
- UE4 解析json
- JavaWeb学习总结(四)_http协议
- JSP学习笔记(4)_HTTP协议
- 新建json转化为string,访问网络获得返回值
- GITHUB来获得UE4源代码
- Android访问php取回json数据
- Android访问php取回json数据
- Android退出应用程序的几种方式
- 一路风雪前行
- Dockerfile 命令
- 360度全景VR摄像机初探
- 反射(2)--Class类
- 【UE4学习】16_http访问PHP获得Json测试
- android studio 经纬度与百度地图拾取坐标经!纬!初入深坑!
- 【转】MYSQL索引实例
- Java多线程--三个线程分别打印a,b,c.请用多线程实现循环打印15次abc
- 【Leetcode】495. Teemo Attacking
- 可见光U盘
- ios 配置HTTPS (单向验证,工程不需要加证书)
- 单例模式的优缺点和使用场景
- Android的两种视频播放