void SetOptCodeForHttpMethod(CURL* requestHandle, const HttpRequest& request) { switch (request.GetMethod()) { case HttpMethod::HTTP_GET: curl_easy_setopt(requestHandle, CURLOPT_HTTPGET, 1L); break; case HttpMethod::HTTP_POST: if (!request.HasHeader(Aws::Http::CONTENT_LENGTH_HEADER)|| request.GetHeaderValue(Aws::Http::CONTENT_LENGTH_HEADER) == "0") { curl_easy_setopt(requestHandle, CURLOPT_CUSTOMREQUEST, "POST"); } else { curl_easy_setopt(requestHandle, CURLOPT_POST, 1L); } break; case HttpMethod::HTTP_PUT: if (!request.HasHeader(Aws::Http::CONTENT_LENGTH_HEADER) || request.GetHeaderValue(Aws::Http::CONTENT_LENGTH_HEADER) == "0") { curl_easy_setopt(requestHandle, CURLOPT_CUSTOMREQUEST, "PUT"); } else { curl_easy_setopt(requestHandle, CURLOPT_PUT, 1L); } break; case HttpMethod::HTTP_HEAD: curl_easy_setopt(requestHandle, CURLOPT_HTTPGET, 1L); curl_easy_setopt(requestHandle, CURLOPT_NOBODY, 1L); break; case HttpMethod::HTTP_PATCH: if (!request.HasHeader(Aws::Http::CONTENT_LENGTH_HEADER)|| request.GetHeaderValue(Aws::Http::CONTENT_LENGTH_HEADER) == "0") { curl_easy_setopt(requestHandle, CURLOPT_CUSTOMREQUEST, "PATCH"); } else { curl_easy_setopt(requestHandle, CURLOPT_POST, 1L); curl_easy_setopt(requestHandle, CURLOPT_CUSTOMREQUEST, "PATCH"); } break; case HttpMethod::HTTP_DELETE: curl_easy_setopt(requestHandle, CURLOPT_CUSTOMREQUEST, "DELETE"); //curl_easy_setopt(requestHandle, CURLOPT_NOBODY, 1L); break; default: assert(0); curl_easy_setopt(requestHandle, CURLOPT_CUSTOMREQUEST, "GET"); break; } }