mongoose/docs/http/client_example.md
Alexander Alashkin e79121acb7 Fix link in documentation
PUBLISHED_FROM=d4337a442a8f5728826eb109bdca41ca03a18d2a
2017-01-09 17:03:46 +00:00

1.0 KiB

title
HTTP client example

To create an HTTP client, follow this pattern:

  1. Create an outbound connection by calling mg_connect_http()
  2. Create an event handler function that handles MG_EV_HTTP_REPLY event

Here's an example of the simplest HTTP client. Error checking is omitted for the sake of clarity:

#include "mongoose.h"

static const char *url = "http://www.google.com";
static int exit_flag = 0;

static void ev_handler(struct mg_connection *c, int ev, void *p) {
  if (ev == MG_EV_HTTP_REPLY) {
    c->flags |= MG_F_CLOSE_IMMEDIATELY;
    fwrite(hm->message.p, 1, hm->message.len, stdout);
    putchar('\n');
    exit_flag = 1;
  } else if (ev == MG_EV_CLOSE) {
    exit_flag = 1;
  };
}

int main(void) {
  struct mg_mgr mgr;

  mg_mgr_init(&mgr, NULL);
  mg_connect_http(mgr, ev_handler, url, NULL, NULL);


  while (exit_flag == 0) {
    mg_mgr_poll(&mgr, 1000);
  }
  mg_mgr_free(&mgr);

  return 0;
}

See full source code at HTTP client example.