그러냐

CURL 이용 POST 방식으로 JSON 파일 보내고 받기 본문

php

CURL 이용 POST 방식으로 JSON 파일 보내고 받기

관절분리 2017. 7. 26. 20:28
반응형

<해당코드 흐름>

1 form 페이지에서 확인 누르면

2 데이터처리하는 페이지로 이동

3 CURL 명령 받아서 처리하는 페이지로이동

4 2번페이지로 이동

<meta charset='utf-8'/>
<form id="frmDataInput" name="frmDataInput" method="post" action="./test_button_pro.php" >
<input type=submit id="BtnSubmit" accesskey='s' value='  등    록  '>
</form>

<meta charset='utf-8'/>
<?
 $jsonArray = '{"HDR":{"VER":"1.0"}, "BODY":[{"APP_ID":"TEST", "APP_NM":"TESST"}]}';   // JSON데이터 생성

 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, "http://???????.co.kr/test/test_curl.php");
 curl_setopt($ch, CURLOPT_POST, 1);
 //curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
 curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); 
 curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($jsonArray)); 
 $result = curl_exec($ch);
 $result_array = json_decode($result, true);
 echo print_r($result_array);
?>

<?

$data = file_get_contents('php://input'); 
if($data == '"{\"HDR\":{\"VER\":\"1.0\"}, \"BODY\":[{\"APP_ID\":\"TEST\", \"APP_NM\":\"TESST\"}]}"'){
 echo "OK";
}else{
 echo "NO";
}

?>

[알고리즘]

확인누르면 test_button_pro.php 로 페이지 이동후

JSON데이터 만들고 인코딩해서 CURL POST 형태로 test_curl.php 페이지에 던짐

test_curl.php 페이지는 그걸 받아서 JSON데이터 확인하고 맞으면
OK 틀리면 NO 를 리턴

그 리턴되는 값을 test_button_pro.php 에서 받아서 보여줌

 

(주의사항)

흐름의 1번 2번 은 같은서버 3번은 다른서버임

같은서버상에서 curl 명령은 먹히지 않음


출처 : https://m.blog.naver.com/PostView.nhn?blogId=pyoungj1003&logNo=220460666791&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F

반응형