티스토리 뷰

재빠르게 이어서 써야지만 잊어 먹지 않으니 바로 시작하겠다. 단말 통신을 위한 테스트 페이지 구축이므로 Request 부분은 생략한다. 단말통신은 추후 안드로이드 관련 포스팅이 끝나면 링크를 걸도록 하겠다.


1. HTTP Header 내용 얻어오기
// Util Function 
function getHeaders($HeaderName) {
	foreach (getallheaders() as $name => $value) {
		if($name == $HeaderName)			
			return $value;
	}
}
이 부분은 HTTP 헤더에서 우리가 Request 시 보냈던 항목을 가져오는 내용이다. 

$mobileTest = getHeader(" MOBILETEST ");
$mobileTest에서는 우리가 앞절에서 보낸 SERVER_TEST라는 값이 할당된다. 이제 우리는 이 값을 이용해 몇가지 처리를 하면 된다.

2. HTTP Body 내용 얻어오기
PHP 홈페이지에 가보면 HttpMessage:: GetBody() 라는 항목이 있다. 이를 이용해 우리는 값을 가져올 수 있다. 이를 통해서 HELLO라는 내용을 얻을 수 있다.

3. Page 별 변수 공유
어플리케이션 개발자가 웹페이지를 개발하면 혼돈되는 것이 변수의 생명 주기 일 것이다. 웹페이지의 경우 변수의 생명 주기는 페이지별이다. 알다시피 PHP 는 서버 인사이드 컴파일이다. 우리가 보는 내용은 이미 서버에서 실행 후 결과이므로 당연히 변수는 다음 페이지에서는 새로 할당된다.

이러한 변수를 공유하는 방법이 여러가지가 있겠다.
1. POST나 Get을 이용해 변수의 정보를 넘겨주거나 
2. HTTP Header에 넘겨주거나..
3. 세션을 활용하는 방법이 있다. (세션의 경우 세션이 유지 되는 동안 계속 사용된다.)

페이지 이동을 할 때엔 아래와 같은 Header정보를 활용하면 편리하다.
header("Location:이동할 URL");

4. Response Data 생성
이제 마지막으로 단말로 정보를 되돌려주는 작업을 진행해야 한다. 
HTTP Header에 필요한 정보를 넣어준다.

header( "MOBILETEST : SERVER_COMPLETE" );
xml Data 생성을 위해 다음과 같이 echo 명령어를 이용한다.

$xml  = "<?xml version=\"1.0\" encoding=\"euc-kr\"?>";
$xml .= "<content >";
$xml .= "<title>AAAAA</title>"; 
$xml .= "</content >";  
echo $xml;

하지만 여기서 문제가 있다!
header 정보를 생성하던 중에 echo를 하게 되면 이상하게 PHP가 오류를 막 내뱉는다. 이럴 때에는 페이지의 가장 상단에 ob_start()를 사용해준다. 이 명령어는 먼저 모든 내용을 다 읽어 실행 한 후에 결과를 생성한다는 의미이다. 즉 한줄 읽고 결과 보내는 식이 아니란 이야기. 
 
이렇게 해주면 간단하게 서버와 단말간 통신이 가능한 페이지가 생성되게 된다.
소스는 없다....

부디 성공하신 분들은 밑에 답글 부탁드립니다.
감사합니다. 
댓글
댓글쓰기 폼