OpenSDN source code
src/contrail-common/http/client/main.cc
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2013 Juniper Networks, Inc. All rights reserved.
3  */
4 
5 #include "http_client.h"
6 #include <boost/bind/bind.hpp>
7 #include "http_curl.h"
8 #include "base/util.h"
9 #include "base/test/task_test_util.h"
10 #include "io/event_manager.h"
11 
12 using namespace boost::placeholders;
13 
15 int num;
16 void httpc_print(HttpConnection *conn, std::string &str,
17  boost::system::error_code &ec) {
18  num++;
19 
20  std::cout << str << std::endl;
21  std::cout << "------ Done -----" << std::endl;
22 
23  HttpClient *client = conn->client();
24  client->RemoveConnection(conn);
25 
26  if (num == 2) {
29  evm.Shutdown();
30  exit(0);
31  }
32 }
33 
34 int main() {
35  HttpClient *client = new HttpClient(&evm);
36  client->Init();
37 
38  boost::asio::ip::tcp::endpoint ep;
39  boost::system::error_code ec;
40  std::string ip("10.84.7.1");
41  ep.address(boost::asio::ip::address::from_string(ip, ec));
42  ep.port(5998);
43 
44  HttpConnection *conn = client->CreateConnection(ep);
45 
46  std::string putstr("<ifmap-server><uuid> 57 </uuid> </ifmap-server>");
47  std::string uri("publish");
48  conn->HttpPost(putstr, uri, boost::bind(&httpc_print, conn, _1, _2));
49 
50  conn = client->CreateConnection(ep);
51  std::string putstr2("<ifmap-server><uuid> 59 </uuid> </ifmap-server>");
52  conn->HttpPost(putstr2, uri, boost::bind(&httpc_print, conn, _1, _2));
53 
54  // std::string uri("");
55  // conn->HttpGet(uri, boost::bind(&httpc_print, conn, _1, _2));
56  evm.Run();
57  return 0;
58 }
HttpConnection * CreateConnection(boost::asio::ip::tcp::endpoint)
Definition: http_client.cc:454
void RemoveConnection(HttpConnection *)
Definition: http_client.cc:473
void Init()
Definition: http_client.cc:422
HttpClient * client()
Definition: http_client.h:100
int HttpPost(const std::string &post_string, const std::string &path, HttpCb)
Definition: http_client.cc:180
static void DeleteServer(TcpServer *server)
Definition: tcp_server.cc:658
static void WaitForIdle()
void httpc_print(HttpConnection *conn, std::string &str, boost::system::error_code &ec)