2010-12-09 5 views
0

Ich versuche, ein einfaches Programm zu schreiben, das libcurl verwendet, um HTTP-POST mit Digest-Authentifizierung durchzuführen.Führen Sie HTTP-POST mit libcurl - Digest-Authentifizierung mit curl_easy_send curl_easy_recv

Es funktioniert gut, wenn ich die XML-Puffer Einstellung, die ich mit CURLOPT_POSTFIELDS und CURLOPT_POSTFIELDSIZE mit entsprechenden curlopt_easy_setopt Anrufe senden möchten, und dann curl_easy_perform aufrufen.

Allerdings, wenn ich versuche, nach dem der Verbindung CURLOPT_CONNECT_ONLY auf 1 gesetzt, und dann curl_easy_send mit - dem Return-Code (für den Sendeaufruf) ist CURLE_UNSUPPORTED_PROTOCOL.

(Natürlich sind der Benutzername, Passwort und Digest Authentifizierungsschema zuvor erfolgreich eingestellt).

Mit einem Sniffer ist es offensichtlich zu sehen, dass die Digest-Verhandlung überhaupt nicht durchgeführt wird.

Wie kann ich immer noch curl_easy_send \ mit CURLOPT_CONNECT_ONLY verwenden, aber libcurl die Digest-Verhandlung durchführen?

Vielen Dank im Voraus.

Antwort

0

Nun, das ist schließlich unmöglich.

curl_easy_send und curl_easy_recv sind für die Implementierung von benutzerdefinierten Protokollen vorgesehen.

Also, was ich denke passiert ist, dass das normale HTTP-Protokoll Behandlung, die libcurl für curl_easy_perform tun würde überhaupt nicht getan wird, so dass es keine Digest \ NTLM \ GSS-Verhandlung zur Verfügung steht.

Ich hoffe, dass es jemandem helfen wird.