PHP + curl + json 결과값이 NULL 이 나오는 것은 ...
본문
홈페이지에서 api 제공하는 사이트로 json 데이타를 전송하고 받으로 합니다.
api 업체는 JAVA 로 개발 운영한다고 하더군요.
업체에서 제공하는 API 도큐먼트
http://api.buyis.co.kr/swagger-ui.html#/A_member_registration_APIs_for_welfare_mall
관련 문서를 기준해서 구글 검색을 해서 아래와 같은 내용을 만들게 되었는데요
NULL 값이 되돌아 오는것을 보면 뭔가 부족한 것이겠지요?
api 업체에 문의를 하기는 하겠지만, 담당 엔지니어는 php에 대한 기술지원은 어렵다고 하는 상황이라서 난감한 상황입니다.
결과값을 받아서 그값을 디비에 저장을 할 계획인데, 일단 결과값이 표시가 안되니 더 진행이 안되네요
<?php
// 그누보드 회원데이타를 가져온 모습
$ch=curl_init(); // 이것을 추가하니 뭔가 값이 넘어오는거 같군요
$url = "http://api.buyis.co.kr/mall/kbizwell2/member/join";
$curl_json_array = " "\"addr\":\"{$member['mb_addr1']}\",
\"addrDetail\":\"{$member['mb_addr2']}\",
\"birth\":\"{$member['mb_birth']}\",
\"email\":\"{$member['mb_email']}\",
\"gender\":\"{$gender}\",
\"hp\":\"{$member['mb_hp']}\",
\"memberId\":\"{$member['mb_id']}\",
\"name\":\"{$member['mb_name']}\",
\"password\":\"password\",
\"post\":\"{$member['mb_zip1']}{$member['mb_zip2']}\",
\"referId\":\"{$member['mb_id']}\" ";
curl_setopt($ch, CURLOPT_USERPWD, '{$curl_json_array}');
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/buyis.v1+json;charset=UTF-8', 'Content-Type: application/json'));
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);
?>
결과값:
NULL
<?php
// 값을 넣은 모습
$ch=curl_init();
$url = "http://api.buyis.co.kr/mall/kbizwell2/member/join";
$curl_json_array = " "\"addr\":\"서울시 무슨구 무슨동\",
\"addrDetail\":\"무슨아파트 101동 102호\",
\"birth\":\"19820101\",
\"email\":\"이메일주소\",
\"gender\":\"10\",
\"hp\":\"핸드폰번호\",
\"memberId\":\"test1\",
\"name\":\"홍길동\",
\"password\":\"password\",
\"post\":\"12345\",
\"referId\":\"test1\" ";
curl_setopt($ch, CURLOPT_USERPWD, '{$curl_json_array}');
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/buyis.v1+json;charset=UTF-8', 'Content-Type: application/json'));
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);
?>
결과값:
NULL
답변 1
$url = "http://api.buyis.co.kr/mall/kbizwell2/member/join?apiKey=e46b1143edf99c225673d323ea2ff9c176df459b";
$headers = ["accept: application/buyis.v1+json;charset=UTF-8", "Content-Type: application/json"];
$datas = [
"addr" => "서울시 무슨구 무슨동ㅁㄴㅇㄻㄴㄹㅇㅁㄴㅇㄻㄴㅇㄹ",
"addrDetail" => "무슨아파트 101동 102호",
"birth" => "19820101",
"email" => "test1골뱅이abcd.com",
"gender" => 10,
"hp" => "xxx-xxxx-xxxx",
"memberId" => "testtest1",
"name" => "홍길동",
"password" => "password",
"post" => "12345",
"referId" => "1234골뱅이1234.com"
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($datas));
$response = curl_exec($ch);
curl_close($ch);
가입이라 post로 던지고
$url = "http://api.buyis.co.kr/mall/kbizwell2/member/testtest1?apiKey=e46b1143edf99c225673d323ea2ff9c176df459b";
$headers = ["accept: application/buyis.v1+json;charset=UTF-8"];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response);
//print_r($result);
echo $result->memberId;
조회할 땐 get으로...
!-->!-->