api ? curl 사용 질문 입니다.

api ? curl 사용 질문 입니다.

QA

api ? curl 사용 질문 입니다.

본문

타사이트에서 정보를 입력 받아 쿼리 처리 하고 결과 상태를 리턴해주려고 합니다.

rest api 를 알지 못하는 상태이다 보니, curl을 이용하여 입력을 받으면 되겠다 싶었습니다.

 

서버단 요청 받는 테스트 소스 입니다.

 

api_test.php

<?php
include_once('./_common.php');

header('Content-Type : application/json; charset=utf-8');


$id = $_GET['id'];      
$pw = $_GET['apiKey']; 

 

$user_chk_sql = " select * from g5_api where api_id = '{$id}' and api_key = '{$pw}' ";
$user_chk_rlt = sql_fetch($user_chk_sql);

 

$result_json = array();

//유저확인
if( $user_chk_rlt ) {

    $tempArr['code'] = "0"; //전체실패
    $tempArr['code_desc'] = "0"; //회원정보오류
    array_push($result_json, $tempArr);
    
    echo json_encode($result_json, JSON_UNESCAPED_UNICODE);
    
}else{
    //echo "미확인";
    $usr_chk = false;
    $tempArr['code'] = "1"; //전체실패
    $tempArr['code_desc'] = "4"; //회원정보오류
    array_push($result_json, $tempArr);
    echo json_encode($result_json, JSON_UNESCAPED_UNICODE);
}
?>

 

요청하는 클라이언트 소스 입니다.

 

<?php
include_once('./_common.php');

Header("Content-type: text/html; charset=utf-8");

 

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://test-ts.com/api/test/api_test.php?id=test&apiKey=jTyIFEz2jorscsjPrC99i3Gx1p7hB1wS");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);

curl_close($ch);

$someArray = json_decode($response, true);

echo $status = curl_getinfo($curl, CURLINFO_HTTP_CODE);


var_dump($response);        //결과 값 출력
var_dump($someArray);
?>

 

제 로컬 PC 테스트에서는 문제 없이 작동 합니다. (서버 소스 , 클라이언트 소스 모두 제 localhost)

 

그런데 서버에 올려서 호출을 하면 (서버소스 서버, 클라이너트 소스 제 localhot)

Warning: curl_getinfo() expects parameter 1 to be resource, null given in ....

Warning: curl_error(): 45 is not a valid cURL handle resource in .....

string(2248) "" NULL

 

 

이렇게 에러 메세지를 뱉어냅니다.

 

구글링 해봐도 curl_error():45 는 딱히 찾기가 힘드네요.

 

선배님들 도움 부탁드립니다.  혹시 서버업체 에서 curl 로 서버에 접근하는것을 차단 하기도 하나요?

아니면 아파치 단에서 먼가 설정이 필요할까요?

 

저희 서버에서 curl 로 외부 접근은 잘됩니다. 서버에 curl 도 설치 되어 있구요.

 

참고로 아파치 2.4 php 5.6 mysq5.7 centos7 그누보드 5.1.1 사용 중입니다.

 

- 추가

호출하는 소스의

 curl_setopt($ch, CURLOPT_URL, "http://test-ts.com/api/test/api_test.php?id=test&apiKey=jTyIFEz2jorscsjPrC99i3Gx1p7hB1wS"); 

에서 url 라인을 직접 화면에 띄우면 문제 없이 결과 값이 나옵니다.

 

아무래도 curl 에서 무슨 문제가 되는거 같은데 어떠한 문제 인지 도무지 알수가 없습니다. ㅠㅠ

이 질문에 댓글 쓰기 :

답변을 작성하시기 전에 로그인 해주세요.
전체 8,694
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT