easy:SetOpt_CustomRequest(request)
Wenn Sie die Anforderungsmethode ändern, indem Sie #CURLOPT_CUSTOMREQUEST
auf etwas setzen, ändern Sie nicht, wie sich libcurl in Bezug auf die jeweilige
Anforderungsmethode verhält, sondern nur die tatsächlich in der Anforderung
gesendete Zeichenkette.
Stellen Sie den internen Standard wieder her, indem Sie diese auf Null setzen.
Diese Option kann verwendet werden, um die Anforderung zu spezifizieren:
HTTP
Zum Beispiel:
Wenn Sie libcurl anweisen, eine HEAD-Anforderung auszuführen, aber dann ein
GET angeben, obwohl eine benutzerdefinierte Anforderung immer noch so
funktioniert, als ob ein HEAD gesendet worden wäre. Um zu einem richtigen HEAD
zu wechseln, verwenden Sie #CURLOPT_NOBODY
, um zu einem richtigen POST zu
wechseln, verwenden Sie #CURLOPT_POST
oder #CURLOPT_POSTFIELDS
und um
zu einem richtigen GET zu wechseln verwenden Sie #CURLOPT_HTTPGET
.
Viele Leute haben diese Option zu Unrecht benutzt, um die gesamte Anfrage durch
ihre eigene zu ersetzen, einschließlich mehrerer Header und POST-Inhalte.
Obwohl das in vielen Fällen funktionieren könnte, führt es dazu, dass libcurl
ungültige Anfragen sendet und den Remote-Server möglicherweise stark
verwirrt. Verwenden Sie #CURLOPT_POST
und #CURLOPT_POSTFIELDS
, um
POST-Daten zu setzen. Verwenden Sie #CURLOPT_HTTPHEADER
, um den von
libcurl gesendeten Satz von Headern zu ersetzen oder zu erweitern. Verwenden
Sie #CURLOPT_HTTP_VERSION
, um die HTTP-Version zu ändern.
FTP
IMAP
POP3
Zum Beispiel:
Wenn Sie libcurl anweisen, eine benutzerdefinierte Anforderung zu verwenden,
verhält es sich so, als ob ein LIST- oder RETR-Befehl gesendet wurde, wo libcurl
erwartet, dass Daten vom Server zurückgegeben werden. Daher sollte
#CURLOPT_NOBODY
verwendet werden, wenn Befehle wie DELE und NOOP
angegeben werden.
SMTP
Zum Beispiel:
Normalerweise wird eine mehrzeilige Antwort zurückgegeben, die in Verbindung
mit #CURLOPT_MAIL_RCPT
verwendet werden kann, um eine EXPN-Anfrage
anzugeben. Wenn die Option #CURLOPT_NOBODY
angegeben ist, kann die
Anforderung zur Ausgabe von NOOP- und RSET-Befehlen verwendet werden.