3
안녕하세요, apns를 사용하여 IOS 푸시 알림을 보내고 PHP에서 컬하고이 오류 메시지가 표시됩니다.예기치 않은 HTTP/1.x 요청 : POST/3/device/XXXXXXXXXXXXXXXXXXXXXXXXXXXX
또한 '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
);
이는 컬 실제 컬 요청입니다 :
여기 내 코드입니다.
// 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/장치/