테스트 사이트 - 개발 중인 베타 버전입니다

php 페이지에서 curl로 api호출하는데 경로 문제 채택완료

kujira 4년 전 조회 3,816

안녕하세요.

php 페이지에서 curl로 api를 호출해서 값을 받아오려고 하는데요.

웹서버는 aws를 사용하고 있습니다.

aws -> 외부 api서버 

이렇게 호출을 하는데요 aws 콘솔에서 curl 123.345.67.89:8601/api/v1/create 이렇게 입력하면

결과를 제대로 출력하는데요. php페이지를 만들어서 열면 호출이 안됩니다.....

</p>

<p>    $service_url = '123.345.67.89:8601/api/v1/create';                                            

    $curl = curl_init($service_url);</p>

<p>    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

    $curl_response = curl_exec($curl);</p>

<p>    $decoded = json_decode($curl_response, true);

    

    print_r($decoded);</p>

<p>

이렇게 php 페이지를 만들어서 열면 호출이 안되네요;;;;

 

 

근데 같은 php 페이지에 경로만 https://api.upbit.com/v1/ticker?markets=KRW-ETH 이렇게 다른 api

를 호출하면 제대로 출력이 됩니다......

</p>

<p>    $service_url = '<a href="https://api.upbit.com/v1/ticker?markets=KRW-ETH';  " target="_blank" rel="noopener noreferrer">https://api.upbit.com/v1/ticker?markets=KRW-ETH';  </a>                                          

    $curl = curl_init($service_url);</p>

<p>    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

    $curl_response = curl_exec($curl);</p>

<p>    $decoded = json_decode($curl_response, true);

    

    print_r($decoded);</p>

<p>

이렇게 ip가 아닌 url로 호출하면 php페이지에서도 호출이 잘 됩니다....

 

php 설정을 봐야되는것 같은데 뭘 봐야되는지 모르겠네요;;;;

aws에서 인/아웃바운드 포트 다 열어놓은 상태입니다.

댓글을 작성하려면 로그인이 필요합니다.

답변 5개

채택된 답변
+20 포인트
Big1
4년 전

제가 해보니

http_code 는 0

curl_error 는 Could not resolve host: 123.345.67.89 

이렇게 나옵니다 

아이피 whois 검색해봐도 안나오는데...

호스트 아이피가 ... 내부아이피인가요? 

 

aws 콘솔 123.345.67.89 request => 성공

다른 idc서버 123.345.67.89 request => 성공?

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

B
Big1
4년 전
아... 그냥 test ip군요...;;;; ㄷㄷㄷ
k
kujira
4년 전
위 아이피는 실제 아이피가 아닌 제가 글 쓸때 임의로 올린 아이피 입니다.

댓글을 작성하려면 로그인이 필요합니다.

Big1
4년 전

raw data를 찍어보셔요 
print_r($curl_response);
respons header가 포함되었을 수도 있으니까요
respons header 보면 http_code나 인증오류 같은거도 보여주니까요
CURLOPT_HEADER 옵션 기본값이 true 인가...?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

k
kujira
4년 전
아무것도 출력이 안되네요. 다른 서버. 그러니까 aws말고 다른 idc에 있는 서버에서 호출하면 잘 됩니다.;;;;;환장하겠네요;;;

댓글을 작성하려면 로그인이 필요합니다.

k
4년 전

http:// https:// 둘 다 넣어봐도 안되네요;;;; 콘솔에서는 넣어도 되고 안넣어도 잘 됩니다;;;;

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

Big1
4년 전

rest api url 에 scheme이 없어서 그런가요?

$service_url = 'https://123.345.67.89:8601/api/v1/create'; 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

http://123.345.67.89:8601/api/v1/create

php 호출시도 경로를 이렇게 해야 되지 않을까요

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인