라이믹스 2.1에서 getRemoteResource 관련 문의...
CMS/프레임워크 | Rhymix 2.1 |
---|---|
개발 언어 | PHP 7.4 |
문제 페이지 주소 | 비공개 (작성 후 5일 경과) |
안녕하세요...
잘 작동하던 코드가 라이믹스를 2.1로 업그레이드한 이후 갑자기 이상동작을 해서 질문드립니다.
어떻게 해결해야할지 감이 잘 안와서 힌트라도 받아가고 싶습니다...
아래의 코드입니다. $url이나 $email, $key등은 여전히 정상적으로 들어가고 있다는걸 확인했구요...
원래는 응답이 오면 json_decode()로 풀어서 처리할 수 있었습니다.
근데 지금은 응답이 비어있네요...
getRemoteResource()가 아니라 다른 식이면 좀더 정보가 있을텐데
getRemoteResource()은 안에서 전부 다 처리하는 식이다보니... 정보가 너무 없습니다...
제 서버면 디버거로 안쪽까지 들어가볼텐데 제 서버가 아닌터라...
$url은 'https://api.stibee.com/v1/lists/318579/groups/320398/subscribers/assign'입니다...
https가 뭔가 문제인걸까요?
검색해보니까 라이믹스 2.1에선 guzzle을 내부적으로 쓰도록 수정되었다고 해서
guzzle의 버젼을 확인해보니까 7.8.1이 /common/vender에 설치되어 있습니다.
근데 소스를 뒤져보니 다른 모듈에서도 직접 guzzle을 사용하는 경우들이 있는 것 같은데
이럴때 문제가 될 수 있지 않을까요? 혹시 autoload가 중복되어 실행되나 싶어서
테스트해봤는데 그것은 아닌거 같긴 합니다만....
$return = FileHandler::getRemoteResource(
$url,
json_encode([$email]),
10,
'POST',
'content-type: application/json',
array(
'AccessToken' => $config->stibee_api_key,
'accept' => 'application/json'
),
array(),
array(),
array('ssl_verify_peer' => false)
);
$url,
json_encode([$email]),
10,
'POST',
'content-type: application/json',
array(
'AccessToken' => $config->stibee_api_key,
'accept' => 'application/json'
),
array(),
array(),
array('ssl_verify_peer' => false)
);
댓글 8
'content-type: application/json',
이게 된다니 이상한데요?
XE나 라이믹스나 그 앞에 Content-Type: 을 한 번 더 붙여주는 것은 마찬가지이니,
'application/json', 이렇게 실제 타입 명칭만 넣어야 할 겁니다.
좀더 확실하게 디버깅하시려면 Rhymix\Framework\HTTP::request()를 사용하시면
Guzzle이 반환하는 값을 그대로 돌려주므로
HTTP 상태 코드, 헤더, 응답 내용 등의 raw 값을 확인할 수 있습니다.
기존의 FileHandler::getRemoteResource()는 반환 타입이 string 달랑 하나여서
이런 부수적인 정보를 함께 담아서 반환할 수 없고,
응답 내용도 상태 코드가 200인 경우에만 정상적으로 반환하기 때문에
디버깅에 영 도움이 되지 않습니다.
그리고 getRemoteResource() 안쪽에서 나온 결과를 debugPrint로 찍어봤더니
cURL error 5: Unsupported proxy syntax in 'http://:'
이런 에러가 뜨는군요...
전해진 url값은 직전까지도 변형되지 않았고 https로 시작하나 http로 시작하나 똑같은 에러가 떴습니다.
혹시 프록시 서버를 설정하셨나요? 프록시 관련 에러인 것 같은데요.
근데 왜 이렇게 된건지 모르겠는데요....
proxy가 최종적으로 http://: 로 저장됩니다...
http://domain:port/path를 어디서 읽어온건지는 잘 모르겠는데...
하여튼 이걸 변형시킨 결과물도 좀 문제가 있는 것 같은데요... http://:면...
이거 느낌이 일종의 예제로 준 파일같은데 왜 이게 읽히는걸까요..??
실제 프록시 설정한 것도 아닌데 이런 값이 읽히면 안될텐데....
XE 시절부터 프록시나 디버깅 설정 등을 넣기 위해 이 파일을 만들어 쓰는 사이트가 많이 있었지요.
문제의 사이트에서 예전에 만들어 넣어 놓고 잊어버린 모양이네요.