void UPhilipsHueBridge::AquireUserID(bool FromFile) { if (FromFile&&GetUserIDFromLocalFile()) { // Test if the User ID stored local is authorized auto HttpRequest1 = FHttpModule::Get().CreateRequest(); { HttpRequest1->OnProcessRequestComplete().BindUObject(this, &UPhilipsHueBridge::HandleUserIDTestRequestComplete); HttpRequest1->SetURL(FString(TEXT("http://")) + Configuration.IpAddress + TEXT("/api/") + ConnectedUser); HttpRequest1->SetVerb(TEXT("GET")); HttpRequest1->ProcessRequest(); } return; } auto HttpRequest = FHttpModule::Get().CreateRequest(); { HttpRequest->OnProcessRequestComplete().BindUObject(this, &UPhilipsHueBridge::HandleUserIDRequestComplete); HttpRequest->SetURL(FString(TEXT("http://")) + Configuration.IpAddress + TEXT("/api")); HttpRequest->SetHeader("Content-Type", "application/json"); HttpRequest->SetVerb(TEXT("POST")); HttpRequest->SetContentAsString(UserRequestJson()); HttpRequest->ProcessRequest(); } }
void FHttpRequestWinInet::FinishedRequest() { // Clean up session/request handles that may have been created CleanupRequest(); TSharedRef<IHttpRequest> Request = SharedThis(this); // Remove from global list since processing is now complete FHttpModule::Get().GetHttpManager().RemoveRequest(Request); if (Response.IsValid() && Response->bResponseSucceeded) { // Mark last request attempt as completed successfully CompletionStatus = EHttpRequestStatus::Succeeded; // Call delegate with valid request/response objects OnProcessRequestComplete().ExecuteIfBound(Request,Response,true); } else { // Mark last request attempt as completed but failed CompletionStatus = EHttpRequestStatus::Failed; // No response since connection failed Response = NULL; // Call delegate with failure OnProcessRequestComplete().ExecuteIfBound(Request,NULL,false); } }
bool UPhilipsHueBridge::HandleTicker(float DeltaTime) { auto HttpRequest = FHttpModule::Get().CreateRequest(); { HttpRequest->OnProcessRequestComplete().BindUObject(this, &UPhilipsHueBridge::HandleHttpRequestComplete); HttpRequest->SetURL(FString(TEXT("http://")) + Configuration.IpAddress + TEXT("/api/") + ConnectedUser + TEXT("/lights")); HttpRequest->SetVerb(TEXT("GET")); HttpRequest->ProcessRequest(); } return !ConnectedUser.IsEmpty(); }
void UPhilipsHueBridge::SetLightStateByLightIDRaw(const int32 LightID, const FString StateJson) { if (!Connected)return; auto HttpRequest = FHttpModule::Get().CreateRequest(); { FString LightIDStr = FString::FromInt(LightID); HttpRequest->OnProcessRequestComplete().BindUObject(this, &UPhilipsHueBridge::HandleLightStateRequestComplete); HttpRequest->SetURL(FString(TEXT("http://")) + Configuration.IpAddress + TEXT("/api/") + ConnectedUser + TEXT("/lights/") + LightIDStr + TEXT("/state")); HttpRequest->SetHeader("Content-Type", "application/json"); HttpRequest->SetVerb(TEXT("PUT")); HttpRequest->SetContentAsString(StateJson); HttpRequest->ProcessRequest(); } }
TSharedRef<IHttpRequest> FCrashUpload::CreateHttpRequest() { auto Request = FHttpModule::Get().CreateRequest(); Request->OnProcessRequestComplete().BindRaw(this, &FCrashUpload::OnProcessRequestComplete); return Request; }