Hi friends!!
I have got a problem with my code to catch a http request on HTML5 package.
ALL THIS CODE RUNS PERFECT IN THE UE EDITOR but when I package the project to HTML5 platform and I execute the package files the log shows this:
Timeout processing Http request
Connection error
The code does a petition to a server.
This is my code, it’s a fragment from a parent class of blueprint asset:
using UnrealBuildTool;
public class juangacedos_web : ModuleRules
{
public juangacedos_web(TargetInfo Target)
{
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" });
PrivateDependencyModuleNames.AddRange(new string[] { });
PrivateDependencyModuleNames.AddRange(new string[] { "HTTP" });
PrivateIncludePathModuleNames.AddRange(new string[] { "HTTP" });
}
In my .h file I have got this includes:
#include "Runtime/Online/HTTP/Public/Http.h"
#include "Runtime/Engine/Public/DDSLoader.h"
#include "Developer/ImageWrapper/Public/Interfaces/IImageWrapper.h"
#include "Developer/ImageWrapper/Public/Interfaces/IImageWrapperModule.h"
And My .cpp do this:
void ACOD_cargaObra::BeginPlay()
{
Super::BeginPlay();
TSharedRef < IHttpRequest > Request = FHttpModule::Get().CreateRequest();
//Set Request
Request->SetVerb("GET");
Request->SetURL(ip + FString("query_obra.php?id=1"));
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, Request->GetURL());
Request->OnProcessRequestComplete().BindUObject(this, &ACOD_cargaObra::PaginaLinkada);
if (!Request->ProcessRequest()){
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TEXT("Problem processing the request "));
}
}
void ACOD_cargaObra::PaginaLinkada(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful){
FString mensaje;
FString cadena;
FString valor;
TArray <FString> atributos;
int indice;
if (bWasSuccessful){
if (!Response.IsValid()){
UE_LOG(LogTemp, Warning, TEXT("Response not is valid"));
}
else{
//
//
//parsing the response
//
//
mensaje = Response->GetContentAsString();
TArray< FString > stringObras;
numObras = mensaje.ReplaceInline(TEXT("///"), TEXT("///"), ESearchCase::IgnoreCase);
mensaje.ParseIntoArray(&stringObras, TEXT("///"), false);
for (int i = 0; i < stringObras.Num() - 1; i++){
FString cadena = stringObras[i];
for (int j = 0; j < ATRIBUTOS_CUADROS; j++){
indice = cadena.Find(TEXT("|||"), ESearchCase::IgnoreCase, ESearchDir::FromStart, 0);
atributos.Add(*cadena.Left(indice));
cadena = *cadena.Right(cadena.Len() - (indice + 3));
}
COD_detalle_obra obra(FCString::Atoi(*atributos[0]), atributos[1],
FCString::Atoi(*atributos[2]), FCString::Atoi(*atributos[3]),
atributos[4], atributos[5], atributos[6], atributos[7]);
obras.Add(obra);
atributos.Reset();
//
//
//
//
}
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, mensaje);
//Event for the blueprint child
this->OnQueryFinalizada(stringObras.Num()-1);
}
}
else{
UE_LOG(LogTemp, Warning, TEXT("Connection error"));
}
}
Thanks!!