Выполните HTTP POST с помощью libcurl - дайджест-аутентификации, используя curl_easy_send \ curl_easy_recv - PullRequest
0 голосов
/ 09 декабря 2010

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

Это прекрасно работает, когда я устанавливаю буфер XML, который я хочу отправить, используя соответствующий curlopt_easy_setoptвызовы с CURLOPT_POSTFIELDS и CURLOPT_POSTFIELDSIZE, а затем вызов curl_easy_perform.

Однако, когда я пытаюсь подключиться после установки CURLOPT_CONNECT_ONLY на 1, а затем с помощью curl_easy_send - код возврата (дляотправить вызов) CURLE_UNSUPPORTED_PROTOCOL.

(Конечно, имя пользователя, пароль и схема аутентификации дайджеста были успешно установлены ранее).

Используя сниффер, очевидно, что дайджестсогласование вообще не выполняется.

Как я могу все еще использовать curl_easy_send \ curl_easy_recv с CURLOPT_CONNECT_ONLY, но позволить libcurl выполнить согласование дайджеста?

Заранее спасибо.

1 Ответ

0 голосов
/ 13 декабря 2010

Ну, в конце концов, это невозможно.

curl_easy_send и curl_easy_recv предназначены для реализации пользовательских протоколов.

Таким образом, я думаю, что происходит то, что обычная обработка протокола HTTP, которую libcurl будет выполнять для curl_easy_perform, вообще не выполняется, поэтому нет доступных дайджест \ NTLM \ GSS согласования.

Надеюсь, что это кому-нибудь поможет.

...