Как отправить HTTP-запрос, используя аутентификацию дайджеста с помощью libcurl

Я пытаюсь выполнить почтовый запрос, и я пытаюсь сделать это с помощью дайджест-аутентификации. с libcurl , я задал параметры:

 url_easy_setopt(curl_handle, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST); curl_easy_setopt(curl_handle, CURLOPT_USERPWD, "user:pdw"); 

перед установкой всех остальных параметров (пост, URL и все). Сервер закрывает мое соединение, и я думаю, что никакой дайджест не сделан. Я просто не знаю, как автоматически получить поведение ответного ответа в дайджесте. Если я установил HTTPAUTH в CURLAUTH_BASIC он кодирует материал, я вижу с опцией VERBOSE заголовок, содержащий authorization = basic . С дайджестом нет заголовков.

Вы знаете, как я могу это сделать, или вы можете дать мне пример? Я действительно ищу везде.

Для базового запроса POST вы должны:

 curl_easy_setopt(hnd, CURLOPT_USERPWD, "user:pwd"); curl_easy_setopt(hnd, CURLOPT_HTTPAUTH, (long)CURLAUTH_DIGEST); curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST"); 

Для многостраничного POST (aka multipart/form-data ):

 struct curl_httppost *post; struct curl_httppost *postend; /* setup your POST body with `curl_formadd(&post, &postend, ...)` */ curl_easy_setopt(hnd, CURLOPT_USERPWD, "user:pwd"); curl_easy_setopt(hnd, CURLOPT_HTTPPOST, post); curl_easy_setopt(hnd, CURLOPT_HTTPAUTH, (long)CURLAUTH_DIGEST); curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST"); 

Pro-tip: используйте инструмент командной строки --libcurl request.c с помощью --libcurl request.c : он выводит в этот файл C список параметров, используемых для выполнения соответствующего запроса.