안녕하세요 CURL을 사용해서 통신을 하려고하는데
$url = "https://URL값"; $body_data = array( 'eventOccuredBy' => 'SUBSCRIBER', 'confirmEmailYN' => 'N', 'groupIds' => 'XXXXXX', 'subscribers' => array( [ "email"=> "test@test.com", "name"=> "홍길동" ], ) ); $body = json_encode($body_data);
$header_data = array(
"accept: application/json",
"content-type: application/json",
"AccessToken : 토큰값"
);
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $header_data); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $body); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec ($ch); print_r($result);
위 방식대로 curl 통신을 진행하려고 하는데
$result 값을 찍어보면
HTTP/1.1 400 Bad Request: invalid header name 오류가 뜨고
Date: Fri, 13 Jan 2023 07:19:25 GMT Content-Type: text/plain; charset=utf-8 Transfer-Encoding: chunked Connection: keep-alive 400 Bad Request: invalid header name
위에 처럼 Content-Type:text/plain 으로 찍힙니다.. 이게 json이 아니여서 오류가 뜨는것같은데.. 가이드 문서대로 진행하였으나
왜 이런 오류가 발생하는지 알 수가 없네요..
혹시 제가 뭘 놓치고 있는게 있을까요??
해결내용입니다.
헤더 포함시에
"AccessToken : 토큰값" 으로 기재하였으나 엑세스 토큰 과 콜론 사이에 공백이 있어서 나타난 오류로 확인되었습니다.
"AccessToken: 토큰값" 으로 진행한 결과 정상적으로 처리됨 확인하였으며 다른분들도 이 글을 통해 해결하시길 바라겠습니다.
오류 메시지상으론 header 이름이 잘 못된것 같네요.
해당 API 문서 보시고 header를 수정해 주세요.