2019-03-31 01:37:06 +08:00
|
|
|
|
// Copyright (C) 2019 Nomango
|
|
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
#include "common.h"
|
2019-03-31 13:09:31 +08:00
|
|
|
|
#include <iostream>
|
2019-03-31 01:37:06 +08:00
|
|
|
|
|
|
|
|
|
|
class Demo5
|
|
|
|
|
|
: public Scene
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
static ScenePtr Create()
|
|
|
|
|
|
{
|
|
|
|
|
|
return new Demo5;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Demo5()
|
|
|
|
|
|
{
|
|
|
|
|
|
AddListener(Event::KeyDown, Closure(this, &Demo5::OnKeyDown));
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
TextPtr text = new Text(L"<EFBFBD><EFBFBD><EFBFBD>ո<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|
|
|
|
|
// <20><><EFBFBD>ýڵ<C3BD><DAB5><EFBFBD>СΪ<D0A1><CEAA><EFBFBD>ֲ<EFBFBD><D6B2>ִ<EFBFBD>С
|
|
|
|
|
|
text->SetSize(text->GetLayoutSize());
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
|
text->SetAnchor(0.5f, 0.5f);
|
|
|
|
|
|
text->SetPosition(WINDOW_WIDTH / 2, WINDOW_HEIGHT / 2);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
this->AddChild(text);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void OnEnter() override
|
|
|
|
|
|
{
|
|
|
|
|
|
Application::ShowConsole(true);
|
2019-03-31 13:09:31 +08:00
|
|
|
|
SendRequest();
|
2019-03-31 01:37:06 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void OnExit() override
|
|
|
|
|
|
{
|
|
|
|
|
|
Application::ShowConsole(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void OnKeyDown(Event const& e)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (e.key.code == KeyCode::Space)
|
|
|
|
|
|
{
|
2019-03-31 13:09:31 +08:00
|
|
|
|
SendRequest();
|
2019-03-31 01:37:06 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2019-03-31 13:09:31 +08:00
|
|
|
|
void SendRequest()
|
|
|
|
|
|
{
|
|
|
|
|
|
Logger::Instance().Println(L"Start to send request...");
|
|
|
|
|
|
|
|
|
|
|
|
HttpRequestPtr request = new HttpRequest;
|
|
|
|
|
|
request->SetUrl(L"http://httpbin.org/get");
|
|
|
|
|
|
request->SetType(HttpRequest::Type::Get);
|
|
|
|
|
|
request->SetResponseCallback(Closure(this, &Demo5::Complete));
|
|
|
|
|
|
|
|
|
|
|
|
HttpClient::Instance().Send(request);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2019-03-31 01:37:06 +08:00
|
|
|
|
void Complete(HttpRequestPtr request, HttpResponsePtr response)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (response->IsSucceed())
|
|
|
|
|
|
{
|
2019-03-31 13:09:31 +08:00
|
|
|
|
Json response_data = Json::parse(response->GetData());
|
|
|
|
|
|
Json result = {
|
|
|
|
|
|
{L"HttpCode", response->GetResponseCode()},
|
|
|
|
|
|
{L"Data", response_data},
|
|
|
|
|
|
};
|
|
|
|
|
|
std::wcout << L"Response: " << std::endl << result.dump(4) << std::endl;
|
2019-03-31 01:37:06 +08:00
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
2019-03-31 13:09:31 +08:00
|
|
|
|
Json result = {
|
|
|
|
|
|
{L"HttpCode", response->GetResponseCode()},
|
|
|
|
|
|
{L"Error", response->GetError()},
|
|
|
|
|
|
};
|
|
|
|
|
|
std::wcout << L"Response: " << std::endl << result.dump(4) << std::endl;
|
2019-03-31 01:37:06 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
};
|