Этот вызов 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.
Замените mb_strlen (serialize ($ dataraw), ‘8bit’) на strlen ($ data)
Других решений пока нет …