初めまして。
昨日から触り始めたUE4初心者です。
さっそく質問なのですが、
HTTP通信をして、JSONの値を取得しようとしているのですが、そもそもどういったBluePrintを使う必要があるのでしょうか?
どなたか教えていただけると助かります。
初めまして。
昨日から触り始めたUE4初心者です。
さっそく質問なのですが、
HTTP通信をして、JSONの値を取得しようとしているのですが、そもそもどういったBluePrintを使う必要があるのでしょうか?
どなたか教えていただけると助かります。
HTTP通信は対応されています。参考になるスレッドの幾つかがあります:
Best way to perform a http request?
そしてJSONファイルの読み込みはTJsonReaderとTJsonWriterというクラスがありますので、それをご覧ください。
ひとつの例として下記のコードが100個のある配列を生成してHTTPで送ります:
FString Payload;
TSharedRef< TJsonWriter<TCHAR, TCondensedJsonPrintPolicy<TCHAR> > > JsonWriter = TJsonWriterFactory<TCHAR, TCondensedJsonPrintPolicy<TCHAR> >::Create(&Payload);
JsonWriter->WriteObjectStart();
JsonWriter->WriteArrayStart(TEXT("Entries"));
// write 100 entries
for (int32 Idx = 0; Idx < 100; Idx++)
{
JsonWriter->WriteObjectStart();
JsonWriter->WriteValue(TEXT("Idx"), Idx);
JsonWriter->WriteValue(TEXT("Name"), TEXT("SomeName"));
JsonWriter->WriteObjectEnd();
}
JsonWriter->WriteArrayEnd();
JsonWriter->WriteObjectEnd();
JsonWriter->Close();
TSharedRef<IHttpRequest> HttpRequest = FHttpModule::Get().CreateRequest();
HttpRequest->SetHeader(TEXT("Content-Type"), TEXT("application/json; charset=utf-8"));
HttpRequest->SetURL(TEXT("https://somehost.com/somepath?param1¶m2"));
HttpRequest->SetVerb(TEXT("POST"));
HttpRequest->SetContentAsString(Payload);
HttpRequest->OnProcessRequestComplete().BindRaw(this, &HttpCompleteCallback);
HttpRequest->ProcessRequest();
よろしくお願いします!
おおおー!どうもありがとう!!助かります!!!
さっそく試してみます!
こんにちは。
試しにいただいたコードの上から2行だけをコードに追加してビルドをしてみましたが、ビルドは通りませんでした。
コードは以下のようにしているのですが、何が問題なのでしょう?
#include "BasicClass.h"
#include "HelloworldPrinter.h"
AHelloworldPrinter::AHelloworldPrinter(const class FPostConstructInitializeProperties& PCIP)
: Super(PCIP)
{
MyNumber = 12;
}
void AHelloworldPrinter::BeginPlay(){
Super::BeginPlay();
if (GEngine){
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Yellow, TEXT("HelloWorld!"));
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Yellow, FString::FromInt(MyNumber));
}
FString Payload;
TSharedRef< TJsonWriter<TCHAR, TCondensedJsonPrintPolicy<TCHAR> > > JsonWriter = TJsonWriterFactory<TCHAR, TCondensedJsonPrintPolicy<TCHAR> >::Create(&Payload);
}