rest — неправильный запрос с использованием file_get_contents для запроса PUT в переполнении стека

Этот вызов API прекрасно работает с использованием Postman (REST-клиент),
но при выполнении запроса на сервере в моем приложении GAE в настоящее время я получаю следующую ошибку:

HTTP-запрос не выполнен! в C: \ Projects \ app \ file.php в строке 26

не удалось открыть поток: HTTP-запрос не выполнен! HTTP / 1.0 400 неправильный запрос в C: \ Projects \ app \ file.php в строке 26

Вот код из моего приложения, которое вызывает метод api остальные / exampleMethod

$dataraw = [
'email' => '[email protected]',
'first_name' => 'firstname',
'last_name' => 'lastname',
'fEmail' => '[email protected]',
'message' => 'test'
];
$data = http_build_query ( $dataraw );
$context = [
'http' => [
'method' => 'PUT',
'header' => "Authorization: apikeystring\r\n" . "Content-Length: " . strlen($data) . "\r\n" . "Content-Type: application/json\r\n",
'content' => $data,
'proxy' => 'tcp://euproxy.example.com:0000'
]
];
$context = stream_context_create ( $context );
$result = file_get_contents ( $GLOBALS ['REST_API_URL'] . '/exampleMethod', false, $context );

В приложении я успешно использовал file_get_contents для запросов GET, но с этим запросом PUT я получаю 400 неверных запросов, которые не приходят от Rest Api.

2

Решение

Замените mb_strlen (serialize ($ dataraw), ‘8bit’) на strlen ($ data)

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]