本文整理汇总了C++中HttpClient::CreateRequest方法的典型用法代码示例。如果您正苦于以下问题:C++ HttpClient::CreateRequest方法的具体用法?C++ HttpClient::CreateRequest怎么用?C++ HttpClient::CreateRequest使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类HttpClient
的用法示例。
在下文中一共展示了HttpClient::CreateRequest方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc, const char * argv[])
{
HttpClient client;
// GET Methodのテスト
{
auto time_point = std::chrono::system_clock::now();
HttpTransactionHandle handles[10];
std::atomic<int> val(0);
for( int i=0; i<ARRAY_SIZEOF(handles); ++i )
{
auto thread = std::thread( [&val, &handles, &client, i](){
handles[i] = client.CreateRequest( HttpRequest( "http://google.co.jp", HttpRequest::GET ),
[&val]( const HttpTransaction& transaction, const char* data, size_t dataSize ){
if( transaction.IsOk() )
{
std::atomic_fetch_add(&val, 1);
std::cout << "val : " << val << std::endl;
std::cout << data << std::endl;
}
else
{
std::cout << "error" << std::endl;
}
}, false );
} );
thread.detach();
}
while( true )
{
client.Update();
bool allCompleted = true;
for( int i=0; i<ARRAY_SIZEOF(handles); ++i )
{
if( !client.IsCompleted( handles[i] ) )
{
allCompleted = false;
}
}
if( allCompleted )
{
break;
}
}
for( int i=0; i<ARRAY_SIZEOF(handles); ++i )
{
client.ReleaseTransaction( handles[i] );
}
auto duration = std::chrono::system_clock::now() - time_point ;
std::cout << "google.co.jpにGETするのにかかった時間" << duration.count() / 1000.0 / 1000.0 << std::endl ;
}
// POSTメソッドのテスト。google.co.jpはpostには対応していないのでエラーが返ってくる
{
auto time_point = std::chrono::system_clock::now();
HttpRequest request( "http://google.co.jp", HttpRequest::POST );
request.SetPostField("name=hoge");
request.SetTimeout(1.0f);
auto handle = client.CreateRequest( request, []( const HttpTransaction& transaction, const char* data, size_t dataSize ){
if( transaction.IsOk() )
{
std::cout << data << std::endl;
}
else if( transaction.IsTimeout() )
{
std::cout << "timeout..." << std::endl;
}
});
while( !client.IsCompleted(handle) )
{
client.Update();
}
auto duration = std::chrono::system_clock::now() - time_point ;
std::cout << "google.co.jpにPOSTするのにかかった時間" << duration.count() / 1000.0 / 1000.0 << std::endl ;
}
return 0;
}