Estoy enviando esto como una prueba a un servidor web de prueba, pero la respuesta, aunque es un 201, lo que significa que lo recibió, no muestra los datos publicados que quiero enviar:
<?php $url = "https://jsonplaceholder.typicode.com/posts"; $client = \Drupal::httpClient(); $post_data = array('color' => 'red'); $response = $client->request('POST', $url, [ 'form_params' => $post_data, 'verify' => false ]); $body = $response->getBody(); dsm($body); ?>¿El formato de la solicitud que hice es incorrecto?
Puedo ver que no está recibiendo los datos de la publicación porque cuando hago un dsm del cuerpo de la respuesta, no está allí.
Esto funcionó para mí, parece que necesitaba agregar los encabezados:
$url="https://jsonplaceholder.typicode.com/posts"; $client = \Drupal::httpClient(); $post_data = $form_state->cleanValues()->getValues(); $response = $client->request('POST', $url, [ 'headers' => ['Content-Type' => 'application/x-www-form-urlencoded'], 'form_params' => $post_data, 'verify'=>false, ]); $body = $response->getBody()->getContents(); $status = $response->getStatusCode(); dsm($body); dsm($status);