Buduję integrację mailchimp i wymagają połączenia POST z kodem JSON.
Nie, używam tego kodu, który faktycznie działa :
$data = wp_remote_post($url, array(
'headers' => array('Content-Type' => 'application/json; charset=utf-8'),
'body' => json_encode($array_with_parameters),
'method' => 'POST'
));
Ale zwraca ostrzeżenie PHP
Ostrzeżenie: http_build_query (): oczekuje się, że parametr 1 będzie Array lub Object. Niepoprawna wartość podana w ../wp-includes/Requests/Transport/cURL.php w linii 507
Jak tego uniknąć?
Próbowałem użyć zwykłej tablicy w indeksie „body”, ale MailChimp zwraca błąd parsowania JSON.
json
http-api
plugin-mailchimp
wp-remote-post
koder-a
źródło
źródło
Odpowiedzi:
Spróbuj ustawić
data_format
parametr w swoim żądaniu w następujący sposób:Wygląda na to, że format może być ustawiony domyślnie
query
, w takim przypadku WordPress próbuje sformatować dane przy użyciuhttp_build_query
, co powoduje problemy, ponieważ już formatujesz treść jako ciąg. Oto odpowiednia odprawawp-includes/class-http.php
:Ponieważ twój błąd pochodzi z linii 507
wp-includes/Requests/Transport/cURL.php
, możemy zobaczyć, że jest to wywołanie root dohttp_build_query
:źródło