CURLOPT_POSTFIELDS in Curl für POST-Anfragen
Wenn Sie Curl zum Ausführen einer POST-Anfrage verwenden und die Option CURLOPT_POSTFIELDS angeben, ist es wichtig, Folgendes zu berücksichtigen entsprechendes Format. Erwägen Sie beispielsweise die Veröffentlichung von zwei Feldern, „first“ und „last“:
„first=John&last=Smith“
String Formatting
If Beim Senden einer Zeichenfolge als POST-Daten sollte diese URL-codiert sein, um eine ordnungsgemäße Zeichencodierung sicherzustellen. Der folgende Code demonstriert dies:
$data = urlencode("first=John&last=Smith");
Array-Formatierung
Wenn die POST-Daten jedoch ein Array sind, müssen sie dem „key => value“ folgen. Format:
$data = [ 'first' => 'John', 'last' => 'Smith' ];
In diesem Fall setzt Curl den Content-Type-Header automatisch auf „multipart/form-data“.
Content-Type-Header
Aus Gründen der besseren Kompatibilität wird empfohlen, den Content-Type-Header explizit festzulegen. Um es beispielsweise auf „application/json“ zu setzen:
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
Verwenden Sie http_build_query()
Alternativ können Sie, anstatt die Abfragezeichenfolge manuell zu erstellen, http_build_query von PHP verwenden ()-Funktion kann verwendet werden:
$query = http_build_query($data, '', '&'); curl_setopt($ch, CURLOPT_POSTFIELDS, $query);
Diese Funktion übernimmt die URL-Kodierung und korrekte Schlüssel=Wert-Formatierung nahtlos.
Das obige ist der detaillierte Inhalt vonWie formatiere ich CURLOPT_POSTFIELDS in cURL-POST-Anfragen richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!