準備
在項目 .cs 檔案中加入依賴的子產品:
PublicDependencyModuleNames.AddRange(new string[] {
"Core",
"CoreUObject",
"Engine",
"InputCore",
"UMG",
"SevenColorSDKiOS",
"Http",
"Json",
"Sockets",
"Networking"
并且,在需要調用的地方包含頭檔案 #include "HttpModule.h"
Get 請求
// 建立Http 請求
TSharedRef<IHttpRequest, ESPMode::ThreadSafe> Request = FHttpModule::Get().CreateRequest();
// 設定請求頭
Request->SetHeader("Content-Type", "text/javascript;charset=utf-8");
// 設定請求方式
Request->SetVerb("GET");
// 請求的連結
Request->SetURL(URL);
// 發送請求
Request->ProcessRequest();
POST 請求
//擷取目前請求
TSharedRef<IHttpRequest, ESPMode::ThreadSafe>* request = THttpRequestMap.Find(CurrentHttpName);
// 設定請求方式
request->Get().SetVerb("POST");
// 請求的連結
request->Get().SetURL(URL);
// 内容包
request->Get().SetContentAsString(jsonStr);
// 設定回調函數
request->Get().OnProcessRequestComplete().BindRaw(this, &FHttpUtil::OnReRequestComplete, CurrentHttpName,URL);
// 發送請求
request->Get().ProcessRequest();
回調
void FHttpUtil::OnReRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, bool bSucceeded, FString keyStr,FString Url) {
if (HttpResponse == nullptr || EHttpRequestStatus::Failed_ConnectionError == HttpRequest->GetStatus())
{
return;
}
if (!EHttpResponseCodes::IsOk(HttpResponse->GetResponseCode()))
{
TSharedRef<TJsonReader<TCHAR>> JsonReader = TJsonReaderFactory<TCHAR>::Create(HttpResponse->GetContentAsString());
....
}
else
{
TSharedRef<TJsonReader<TCHAR>> JsonReader = TJsonReaderFactory<TCHAR>::Create(HttpResponse->GetContentAsString());
....
}
}
- 閱讀完記得給我點個贊哦,有👍 有動力
- 關注公衆号---HelloWorld傑少,第一時間推送新姿勢