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

영카트5에서 json을 이용해 api를 연결하려하는데요 오류가 남니다. 채택완료

조강 7년 전 조회 5,209

      include_once('./_common.php');
       $ch = curl_init();
       $post_data = Array();
       $imsi['mb_id']    = "회원아이디"; //[회원아이디]
       $imsi['password'] = "회원패스워드";  //[회원패스워드]
       $url = "api회사에서 지정해준경로"
       $ch = curl_init($url);
       $post_data = array(
                    "api_key"    => $api_key,
                    "api_domain" => $api_domain,                            
                    "id"            => $imsi['mb_id'],
                    "password"   => $imsi['password']
       );
       $js_login = json_encode($post_data);


       curl_setopt($ch, CURLOPT_POSTFIELDS, $js_login);
       curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
       curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
       $result = curl_exec($ch);
       curl_close($ch);
       $data = json_decode($result, true);
       $api['mb_id'] = $data["data"][0]["ID"];
       불러온 회원아이디 : $api['mb_id'];

뭔가 빠져서 그런지 무한루프비슷하게 페이지가 로딩이 길어지고, 다운됩니다.
아니면, 영카트자체에서 json자체가 없는 것인지 궁금합니다.

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

답변 7개

채택된 답변
+20 포인트
프라푸치노K

http://주소/adm/phpinfo.php 로 접속해 curl이 설치되어있나 확인해보세요.

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

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

6년 전

답변들 모두 감사합니다. 
약간 황당한데요ㅠㅠ API제공하는 측에서 포트를 열어주지 않았다고 합니다.
상기처럼 쓰니, 작동 잘됩니다.

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

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

7년 전

2번 째 줄의 $ch = curl_init(); 를 삭제해 보세요.

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

답변에 대한 댓글 1개

조강
6년 전
감사합니다.

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

7년 전

그래도 안돼네요 ㅠㅠ 감사합니다.

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

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

프라푸치노K

$ch = curl_init();

curl_setopt($ch , CURLOPT_URL, $url);

curl_setopt($ch , CURLOPT_POST, 1);

 

init에 url을 넣지말고 CURLOPT_URL 추가해보세요. CURLOPT_POST도 추가해보시고요

 

[참고] /lib/common.lib.php 파일의 googl_short_url함수에서 curl 사용한 예제가 있으니 참고하세요.

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

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

json 방식은 영카트와 별개로 php 와 관련되있습니다.

 

php 5.1 인지 5.2 이하부터 json_encode, json_decode 함수지원이 안됩니다.

 

그럴경우 json_decode 기능을 하는 메소드를 만들어서 사용하기도 합니다.

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

답변에 대한 댓글 1개

조강
7년 전
서버는 UTF-8 (PHP7.0, Mariadb-10.0.x) 사양입니다. 감사합니다.

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

7년 전

crul로 요청 보낸 쪽에 결과값이 정상적으로 받아 지는지 확인해 보셨나요? php 5.2 이상일 경우 json_encode 가없을리 없고 설사 없다 하더라도 not function 오류가 발생 했을 겁니다.

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

답변에 대한 댓글 1개

조강
7년 전
확인해 보겠습니다. 감사합니다.

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

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

로그인