Ich baue eine Mailchimp-Integration auf und sie erfordern einen POST-Aufruf mit JSON-Code.
Nein, ich verwende diesen Code, der tatsächlich funktioniert :
$data = wp_remote_post($url, array(
'headers' => array('Content-Type' => 'application/json; charset=utf-8'),
'body' => json_encode($array_with_parameters),
'method' => 'POST'
));
Es wird jedoch eine PHP-Warnung zurückgegeben
Warnung: http_build_query (): Parameter 1 wird voraussichtlich Array oder Objekt sein. Falscher Wert in ../wp-includes/Requests/Transport/cURL.php in Zeile 507
Wie vermeide ich das?
Ich habe versucht, nur das einfache Array im 'body'-Index zu verwenden, aber MailChimp gibt einen JSON-Analysefehler zurück.
json
http-api
plugin-mailchimp
wp-remote-post
a-coder
quelle
quelle
Antworten:
Versuchen Sie, den
data_format
Parameter in Ihrer Anfrage wie folgt einzustellen :Es sieht so aus, als ob das Format standardmäßig verwendet
query
wird. In diesem Fall versucht WordPress, die Daten mit zu formatierenhttp_build_query
, was zu Problemen führt, da Sie den Text bereits als Zeichenfolge formatieren. Hier ist der relevante Check-inwp-includes/class-http.php
:Da Ihr Fehler aus Zeile 507 von stammt
wp-includes/Requests/Transport/cURL.php
, können wir sehen, dass dies der Root-Aufruf vonhttp_build_query
:quelle