Upload
jennifer-doyle
View
113
Download
0
Embed Size (px)
DESCRIPTION
Ch.07-5 xml- rpc 사용하기. 2008011113 김상엽. 목차. XML-RPC 란 무엇인가 ? XML-RPC 의 형태 예제 소스 분 석. Xml- rpc 란 무엇인가 ?. XML : 웹서비스에서 광범위하게 사용되는 데이터나 문서를 표준화 하기 위하여 사용되는 도구를 말한다 . html 과는 다르게 텍스트로 표현된 데이터를 구조화 하여 전송할 수 있으므로 , 데이터의 재사용과 정보 검색에 있어서 유리하다. Xml- rpc 란 무엇인가 ?. - PowerPoint PPT Presentation
Citation preview
CH.07-5
XML-RPC 사용하기
2008011113 김상엽
목차
1) XML-RPC 란 무엇인가 ?
2) XML-RPC 의 형태
3) 예제 소스 분석
XML-RPC 란 무엇인가 ?- XML : 웹서비스에서 광범위하게 사용되는 데이터나 문서를 표준화
하기 위하여 사용되는 도구를 말한다 . html 과는 다르게 텍스트로 표현된 데이터를 구조화 하여 전송할 수 있으므로 , 데이터의 재사용과 정보 검색에 있어서 유리하다 .
XML-RPC 란 무엇인가 ?
- RPC : 네트워킹을 할 때 , 원격지에 정의된 함수를 다른 로컬 컴퓨터에서 호출하는 것처럼 만든 기술을 말한다 . 이 기술은 송수신 프로토콜을 사용하는 스텁을 만들어 통신하므로 , 개발자는 내부적인 과정을 몰라도 클라이언트 , 서버를 만들어 사용할 수 있다 .
클라이언트 서버Stub Stub
XML-RPC 란 무엇인가 ?
- XML-RPC : 이름 그대로 RPC 기술을 이용한 서버와의 통신 과정에서 XML 을 이용하는 기술 . 서버와 클라이언트간의 정보가 XML 문서로 만들어져 응답하게 된다 .
클라이언트 서버Stub Stub
XML 문서
XML 문서
XML-RPC 의 형태<?xml version=“1.0”?>
<methodResponse> 서버의 함수 응답을 의미 <params>
<param>
<value><i4>11</i4></value> 4 바이트의 11 이라는 값을 </param> 가지는 param 변수를 의미 </params>
</method Call>
XML-RPC 의 형태<?xml version=“1.0”?>
<methodCall> 클라이언트의 함수 호출을 의미 <methodName>echo.execute</methodName> 함수이름 <params>
<param>
<value><i4>11</i4></value> 4 바이트의 11 이라는 값을 </param> 가지는 param 변수를 의미 </params>
</method Call>
예제 Public class SampleIBMLActivity extends Activity {
private String url=“http://147.46.109.56:10423/”; // 접속 서버 정의
private Stirng HANDLER_NAME=“echo”; // 핸들러 이름 정의
----
public void onCreate(Bundle savedInstanceState) {
----
connectBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
launch(); // 메소드 호출
}
}_;
----
예제 public void launch() {
try {
IBMLClient client=new IBMLClient(url); // 클라이언트 객체 생성
println(“Client initialized with URL [“ + url + “].\n”);
Vector params=new Vector();
params.add(“Hello Android Town!”); Vector 객체 생성
Vector response=null;
response=(Vector)client.execute(HANDLER_NAME+”.execute”, params); // 메소드 호출
println(“Waiting response …\n”);
processResponse(response); //Vector 객체 처리
} catch(Exception ex) {
ex.printStackTrace();
}
}
예제private void processResponse(Vector response) throws IBMLPacketException {
println(“Processing response …\n”);
for(int i=0; i<response.size(); i++) {
Object obj=response.get(i);
if(obj instanceof String) {
String msg=“#” + i + “ (String) : “ + obj;
println(msg);
----
}
}
}
private void println(String msg) {
Log.d(TAG, msg);
예제 txtMsg.append(“\n” + msg);
}
}