Неожиданный запрос HTTP / 1.x: POST / 3 / device / XXXXXXXXXXXXXXXXXXXXXXXXXXXX

Привет я посылаю push-уведомления IOS, используя apns и curl в php и получаю это сообщение об ошибке.

Я также определяю ‘CURL_HTTP_VERSION_2_0’, но все еще получаю эту ошибку.

Вот мой код:

       $key_file = XXXXXX';
$secret = null;
$private_key = JWKFactory::createFromKeyFile($key_file, $secret, [
'kid' => '3W6B5LQQHX',
'alg' => 'ES256',
'use' => 'sig',
]);

$payload = [
'iss' => 'RUK725A7V4',
'iat' => time(),
];

$header = [
'alg' => 'ES256',
'kid' => $private_key->get('kid'),
];

$jws = JWSFactory::createJWSToCompactJSON(
$payload, $private_key, $header
);if (!defined('CURL_HTTP_VERSION_2_0')) {
define('CURL_HTTP_VERSION_2_0', 3);
}

$http2_server = 'https://api.development.push.apple.com';
$app_bundle_id = 'com.MD.example';

$token = $device->device_id;
$url = "{$http2_server}/3/device/{$token}";

// headers
$headers = array(
"apns-topic: {$app_bundle_id}",
'Authorization: bearer ' . $jws
);

Это фактический запрос curl.

         // other curl options
curl_setopt_array($http2ch, array(
CURLOPT_URL => $url,
CURLOPT_PORT => 443,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_POST => TRUE,
CURLOPT_POSTFIELDS => $data,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_TIMEOUT => 30,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_HEADER => 1,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_2_0,
));
$result = curl_exec($http2ch);

Я получаю эту ошибку Неожиданный HTTP / 1.x запрос: POST / 3 / device /

3

Решение

Я получал то же самое Unexpected HTTP/1.x request: POST /3/device/XXXX ответ при использовании cURL в PHP, но никогда при использовании curl в командной строке.

Просто перезапустите веб-сервер Apache с sudo apachectl restart исправил проблему.

0

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector