Przeglądaj źródła

示范跟cinatra的http client做整合。

tags/2.9.10
tearshark 4 lat temu
rodzic
commit
e3b45d1aad

+ 2
- 1
test_librf.cpp Wyświetl plik

@@ -29,13 +29,14 @@ extern void benchmark_main_channel_passing_next();
extern void resumable_main_benchmark_asio_server();
extern void resumable_main_benchmark_asio_client(intptr_t nNum);

extern void test_async_cinatra_client();

int main(int argc, const char* argv[])
{
(void)argc;
(void)argv;

//resumable_main_stop_token();
//test_async_cinatra_client();
//return 0;

//if (argc > 1)

+ 58
- 0
tutorial/test_async_cinatra_client.cpp Wyświetl plik

@@ -0,0 +1,58 @@
//依赖 https://github.com/tearshark/modern_cb 项目
//依赖 https://github.com/tearshark/librf 项目
//依赖 https://github.com/qicosmos/cinatra 项目

#include <iostream>
#include "../../cinatra/include/cinatra.hpp"
#include "librf.h"
#include "use_librf.h"

using namespace resumef;
using namespace cinatra;

void test_async_cinatra_client()
{
std::string uri = "http://www.baidu.com";
std::string uri1 = "http://cn.bing.com";
std::string uri2 = "https://www.baidu.com";
std::string uri3 = "https://cn.bing.com";

GO
{
auto client = cinatra::client_factory::instance().new_client();
response_data data = co_await client->async_get(uri, use_librf);
print(data.resp_body);
};

GO
{
auto client = cinatra::client_factory::instance().new_client();
response_data data = co_await client->async_get(uri1, use_librf);
print(data.resp_body);
};

GO
{
auto client = cinatra::client_factory::instance().new_client();
response_data data = co_await client->async_post(uri, "hello", use_librf);
print(data.resp_body);
};

#ifdef CINATRA_ENABLE_SSL
GO
{
auto client = cinatra::client_factory::instance().new_client();
response_data data = co_await client->async_get(uri2, use_librf);
print(data.resp_body);
};

GO
{
auto client = cinatra::client_factory::instance().new_client();
response_data data = co_await client->async_get(uri3, use_librf);
print(data.resp_body);
};
#endif

resumef::this_scheduler()->run_until_notask();
}

+ 2
- 2
tutorial/test_async_modern_cb.cpp Wyświetl plik

@@ -1,5 +1,5 @@
//依赖 https://github.com/tearshark/modern_cb.git 项目
//依赖 https://github.com/tearshark/librf.git 项目
//依赖 https://github.com/tearshark/modern_cb 项目
//依赖 https://github.com/tearshark/librf 项目

#include <future>
#include <string>

+ 6
- 0
vs_proj/librf.vcxproj Wyświetl plik

@@ -205,6 +205,12 @@
<ClCompile Include="..\tutorial\test_async_cb.cpp" />
<ClCompile Include="..\tutorial\test_async_channel.cpp" />
<ClCompile Include="..\tutorial\test_async_channel_mult_thread.cpp" />
<ClCompile Include="..\tutorial\test_async_cinatra_client.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\tutorial\test_async_dynamic_go.cpp" />
<ClCompile Include="..\tutorial\test_async_event.cpp" />
<ClCompile Include="..\tutorial\test_async_event_timeout.cpp" />

+ 3
- 0
vs_proj/librf.vcxproj.filters Wyświetl plik

@@ -133,6 +133,9 @@
<ClCompile Include="..\tutorial\test_async_stop_token.cpp">
<Filter>tutorial</Filter>
</ClCompile>
<ClCompile Include="..\tutorial\test_async_cinatra_client.cpp">
<Filter>tutorial</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\librf\librf.h">

Ładowanie…
Anuluj
Zapisz