2017-12-05 17 views
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/장치/

답변

0

명령에 컬을 사용하는 경우 PHP에서 컬을 사용하지만 결코 때이 같은 Unexpected HTTP/1.x request: POST /3/device/XXXX 반응을 얻고 있었다 선.

sudo apachectl restart으로 아파치 웹 서버를 재시작하면 문제가 해결됩니다.