질문 Q #25042
curl header content-type 변경이 안돼요..
라산 2023-01-13 16:26:34

안녕하세요 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이 아니여서 오류가 뜨는것같은데.. 가이드 문서대로 진행하였으나

왜 이런 오류가 발생하는지 알 수가 없네요.. 

혹시 제가 뭘 놓치고 있는게 있을까요??

 

답변 2
#1 한대승(불의회상) 2023-01-16 11:09:31

오류 메시지상으론 header 이름이 잘 못된것 같네요.

해당 API 문서 보시고 header를 수정해 주세요.

#2 라산 2023-01-19 17:22:23

해결내용입니다.

헤더 포함시에

 "AccessToken : 토큰값" 으로 기재하였으나 엑세스 토큰 과 콜론 사이에 공백이 있어서 나타난 오류로 확인되었습니다.

 "AccessToken: 토큰값" 으로 진행한 결과 정상적으로 처리됨 확인하였으며 다른분들도 이 글을 통해 해결하시길 바라겠습니다.