1e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET/*************************************************************************** 29bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels * _ _ ____ _ 39bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels * Project ___| | | | _ \| | 49bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels * / __| | | | |_) | | 59bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels * | (__| |_| | _ <| |___ 69bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels * \___|\___/|_| \_\_____| 79bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels * 88f1a214b8a21b66f33454790dfba97ae2f818289Alex Deymo * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al. 9e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET * 10e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET * This software is licensed as described in the file COPYING, which 11e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET * you should have received as part of this distribution. The terms 128f1a214b8a21b66f33454790dfba97ae2f818289Alex Deymo * are also available at https://curl.haxx.se/docs/copyright.html. 13e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET * 14e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET * You may opt to use, copy, modify, merge, publish, distribute and/or sell 15e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET * copies of the Software, and permit persons to whom the Software is 16e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET * furnished to do so, under the terms of the COPYING file. 17e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET * 18e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY 19e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET * KIND, either express or implied. 20e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET * 21e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET ***************************************************************************/ 228f1a214b8a21b66f33454790dfba97ae2f818289Alex Deymo/* <DESC> 238f1a214b8a21b66f33454790dfba97ae2f818289Alex Deymo * simple HTTP POST using the easy interface 248f1a214b8a21b66f33454790dfba97ae2f818289Alex Deymo * </DESC> 258f1a214b8a21b66f33454790dfba97ae2f818289Alex Deymo */ 269bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels#include <stdio.h> 279bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels#include <curl/curl.h> 289bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels 299bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckelsint main(void) 309bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels{ 319bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels CURL *curl; 329bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels CURLcode res; 339bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels 34e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET /* In windows, this will init the winsock stuff */ 35e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET curl_global_init(CURL_GLOBAL_ALL); 36e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET 37e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET /* get a curl handle */ 389bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels curl = curl_easy_init(); 399bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels if(curl) { 409bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels /* First set the URL that is about to receive our POST. This URL can 419bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels just as well be a https:// URL if that is what should receive the 429bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels data. */ 439bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels curl_easy_setopt(curl, CURLOPT_URL, "http://postit.example.com/moo.cgi"); 449bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels /* Now specify the POST data */ 459bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "name=daniel&project=curl"); 469bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels 479bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels /* Perform the request, res will get the return code */ 489bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels res = curl_easy_perform(curl); 49e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET /* Check for errors */ 50e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET if(res != CURLE_OK) 51e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET fprintf(stderr, "curl_easy_perform() failed: %s\n", 52e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET curl_easy_strerror(res)); 539bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels 549bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels /* always cleanup */ 559bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels curl_easy_cleanup(curl); 569bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels } 57e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET curl_global_cleanup(); 589bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels return 0; 599bd90e6e25f1e55f50201c87a1b5837de7e5b64aLucas Eckels} 60