Ich habe versucht, von einer vorherigen Post-Anfrage zu einer Get-Anfrage zu wechseln. Was davon ausgeht, dass es ein Get ist, aber irgendwann einen Beitrag macht.
Ich habe folgendes in PHP versucht:
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, null);
curl_setopt($curl_handle, CURLOPT_POST, FALSE);
curl_setopt($curl_handle, CURLOPT_HTTPGET, TRUE);
Was vermisse ich?
Zusätzliche Informationen: Ich habe bereits eine Verbindung, die für eine POST-Anforderung eingerichtet ist. Das wird erfolgreich abgeschlossen, aber später, wenn ich versuche, die Verbindung wiederzuverwenden und mit den obigen Setopts wieder zu GET zu wechseln, wird immer noch ein POST intern mit unvollständigen POST-Headern ausgeführt. Das Problem ist, dass es glaubt, ein GET auszuführen, aber am Ende einen POST-Header ohne den Parameter content-length setzt und die Verbindung mit einem 411 ERROR fehlschlägt.
Antworten:
Stellen Sie sicher, dass Sie Ihre Abfragezeichenfolge am Ende Ihrer URL einfügen, wenn Sie eine GET-Anforderung ausführen.
Anmerkung aus den
curl_setopt()
Dokumenten fürCURLOPT_HTTPGET
(Hervorhebung hinzugefügt):quelle
Fügen Sie dies hinzu, bevor Sie curl_exec ($ curl_handle) aufrufen.
quelle
Gelöst: Das Problem liegt hier:
Ich stellte
POST
über beide_CUSTOMREQUEST
und_POST
und die_CUSTOMREQUEST
wiePOST
beim_POST
Umschalten auf_HTTPGET
. Der Server nahm an, dass der Header_CUSTOMREQUEST
der richtige war, und kam mit einem 411 zurück.quelle
Die CURL-Anforderung ist standardmäßig GET. Sie müssen keine Optionen festlegen, um eine GET CURL-Anforderung zu erstellen.
quelle