[8] laravel - curl api전송(외부사이트)_1
2024. 6. 4. 17:14ㆍlaravel(라라벨)
728x90
[ 환경 ]
ㄴ laravel 10.48.9
1. curl의 값 전송폼 생성(html파일)
ㄴ html파일 생성완료 - curl1.php
2. web페이지에서 curl1.php 호출
Route::get('/api/curl', function () { // /api/curl 경로를 입력하여 페이지 호출
return view('/curl/curl1'); // views에 생성해둔 curl 폼 html파일 view로 호출
});
ㄴ 기본경로 resources/views를 제외하고 하위 경로를 입력하여 view()로 호출.
ㄴ 호출 완료
3. web페이지에서 받은 데이터로 curl 생성
Route::post('/test/curl1', function () {
$data = []; // curl전송할 데이터를 담을 빈배열 생성
$data['name'] = $_POST['name']; // key - name value - name
$data['tel'] = $_POST['tel']; // key - tel value - tel
$data['memo'] = $_POST['memo']; // key - memo value - memo
$site_url = "http://?????.??????.???/curl2.php"; // 외부 사이트에서 확인.
$ch = curl_init(); // 세션 초기화 함수.
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // curl_exec반환 값 설정 (1일시 문자열로 변환)
curl_setopt($ch, CURLOPT_POST, 1); // 메서드 설정 1-post/2-get
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // SSL인증서 유효성검사 설정X
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); // post방식으로 담은 데이터
curl_setopt($ch, CURLOPT_URL, $site_url); // curl 전송할 url경로
$res = curl_exec($ch); // curl 실행 함수
$error = curl_error($ch); // 에러 확인
// 에러체크
if($error){
die("에러 : ".$error); // 에러 시에 에러문 띄우고 die
}else{
return $res; // curl 결과 최종리턴
}
curl_close($ch); // curl 종료 함수.
});
ㄴ 라우팅 post로 등록 - 전송폼의 action의 경로입력
4. curl에서 전송한 외부사이트 페이지 코드확인
ㄴ 해당 포스팅 글 페이지 사용
https://kuk1938.tistory.com/42
<?php
// curl2.php 페이지
echo "[ curl 전송 받는 페이지 ]<br>";
echo "$_POST로 전송 받은 값 출력<br>";
print_r($_POST);
# 사이트내 curl & 라라벨 curl 삼항연산자_2024.06.04(화)
$_POST['test1'] = ($_POST['test1']) ? "<br> 첫번째 : ".$_POST['test1'] : "<br> laravel curl 이름 : ".$_POST['name'];
$_POST['test2'] = ($_POST['test2']) ? "<br> 두번째 : ".$_POST['test2'] : "<br> laravel curl 연락처 : ".$_POST['tel'];
$_POST['test3'] = ($_POST['test3']) ? "<br> 세번째 : ".$_POST['test3'] : "<br> laravel curl 메모 : ".$_POST['memo'];
echo $_POST['test1'];
echo $_POST['test2'];
echo $_POST['test3'];
?>
ㄴ test1~test3은 예전 curl전송시 사용한 배열값.
ㄴ 한 페이지로 외부사이트 내의 curl, 라라벨 curl 2가지를 받으면서 삼항연산자로 처리하였음.
5. 최종 프로세스 진행
ㄴ 폼에서 정보입력
ㄴ curl생성 - curl 외부사이트로 전송 - curl페이지에서 출력문 호출
- curl1.php => 외부사이트curl2.php => curl1.php
ㄴ 출력완료
728x90
'laravel(라라벨)' 카테고리의 다른 글
[10] laravel - Class "App\Http\Controllers\DB" not found 오류 (0) | 2024.06.24 |
---|---|
[9] laravel - curl전송(외부사이트)_2 (0) | 2024.06.20 |
[7] laravel - controller 사용법 (0) | 2024.06.03 |
[6] laravel - 라우팅 등록 (0) | 2024.05.31 |
[5] laravel - 데이터베이스 쿼리 빌더_2 (0) | 2024.05.20 |