#include <curl/curl.h> CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_EFFECTIVE_METHOD, char **methodp);
In cases when you've asked libcurl to follow redirects, the method may very well not be the same method the first request would use.
The methodp pointer will be NULL or pointing to private memory you MUST NOT free - it gets freed when you call curl_easy_cleanup(3) on the corresponding CURL handle.
CURL *curl = curl_easy_init(); if(curl) { CURLcode res; curl_easy_setopt(curl, CURLOPT_URL, "https://example.com"); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "data"); curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); res = curl_easy_perform(curl); if(res == CURLE_OK) { char *method = NULL; curl_easy_getinfo(curl, CURLINFO_EFFECTIVE_METHOD, &method); if(method) printf("Redirected to method: %s\n", method); } curl_easy_cleanup(curl); }