int main(int argc, char **argv) { herror_t status; size_t len; httpc_conn_t conn; if (argc < 2) { fprintf(stderr, "usage: %s <url> [nanoHTTP params]\n", argv[0]); exit(1); } if ((status = httpc_init(argc, argv)) != H_OK) { fprintf(stderr, "Cannot init nanoHTTP client (%s)\n", herror_message(status)); herror_release(status); exit(1); }
if (!(conn = httpc_new())) { fprintf(stderr, "Cannot create nanoHTTP client connection\n"); httpc_destroy(); exit(1); }
httpc_set_header(conn, "my-key", "my-value");
httpc_add_header(conn, "Cookie", "name1:value1"); httpc_add_header(conn, "Cookie", "name2:value2");
Please see General Header Fields and Request Header Fields for more information.
httpc_set_basic_authorization(conn, "username", "password");
httpc_set_basic_proxy_authorization(conn, "username", "password");
if ((status = httpc_get(conn, &result, argv[1])) != H_OK) { fprintf(stderr, "nanoHTTP client connection failed (%s)\n", herror_message(status)); herror_release(status); httpc_destroy(); exit(1); }
if ((status = httpc_post_begin(conn, argv[1])) != H_OK) { fprintf(stderr, "nanoHTTP client connection failed (%s)\n", herror_message(status)); herror_release(status); httpc_destroy(); exit(1); } if ((status = http_output_stream_write(conn->out, buffer, len)) != H_OK) { fprintf(stderr, "nanoHTTP client sending POST data failed (%s)\n", herror_message(status)); herror_release(status); httpc_destroy(); exit(1); } if ((status = httpc_post_end(conn, &result)) != H_OK) { fprintf(stderr, "nanoHTTP client POST failed (%s)\n", herror_message(status)); herror_release(status); httpc_destroy(); exit(1); }
while (http_input_stream_is_ready(res->in)) { len = http_input_stream_read(res->in, buffer, MAX_BUFFER_SIZE); fwrite(buffer, len, 1, stdout); }
hresponse_free(res);
httpc_free(conn); exit(0); }