2012-07-16 2 views
0

ksoap2 라이브러리를 사용하여 서버 측과 안드로이드 앱을 연결하는 데 webservices를 사용하고 있습니다. 문제는 다양한 관련 자료를 읽음에도 불구하고 마샬링, 검색, 데스 라이징 등의 용어에 대해 여전히 혼란 스럽습니다. 실제로 이들 간의 차이점은 무엇입니까? 왜 우리가 그것을 할 필요가 있습니다. 난 그게 webserivces에만 관련이 있다는 것을 알고 기본적으로 webservices에서 값을 전달하거나 반환하기 위해 수행됩니다. 우리가 실제로 그것들을 필요로하는 이유와 우리가 실제로 물건들을 검색하거나 어떻게 다듬을 지 또는 웹 서버 자체가 우리에게이 기능을 주는가 ??? 우리는 클라이언트 측 또는 웹 서비스 자체에서 마샬링 또는 검색을위한 코드를 작성해야합니까? 어쨌든이 작업을 수행 할 필요가 없으며 자동으로 수행 할 프로젝트에 포함 할 수있는 라이브러리 또는 다른 라이브러리를 검색하거나 계층화 할 필요가없는 방식으로 웹 서비스를 호출 할 수 있습니까? 안내해주십시오웹 서비스에서 마샬링, Searlizing, Deslizing

답변

0

마샬링/직렬화, 비 ​​정렬 화/비 직렬화는 웹 서비스 세계에서 종종 교환 가능하게 사용되며 기본적으로 동일합니다.

당신이 어떤 방법으로 그것을 구축하는 데 필요한 웹 서비스에 요청을 보내고, 그 경우 REST 웹 서비스, 요청/응답의 형식은 XML 또는 JSON 보통이다.

SOAP 웹 서비스 인 경우 형식은 XML입니다.

그래서 요청을 보낼 때마다 정확한 형식으로 작성해야하며이를 마샬링/직렬화라고합니다.

응답을받을 때마다 구문 분석해야하며이를 언 마샬링/비 직렬화라고합니다.

더 쉽고 유연한 REST 웹 서비스를 배우는 것이 좋습니다.

편집 : 당신이 HttpURLConnection를 사용해야 자바에서 REST 서비스에 연결하기 위해

. 답장을

public static String httpPost(String urlStr) throws Exception { 
URL url = new URL(urlStr); 
HttpURLConnection conn = 
(HttpURLConnection) url.openConnection(); 
conn.setRequestMethod("POST"); 
conn.setDoOutput(true); 
conn.setDoInput(true); 
conn.setUseCaches(false); 
conn.setAllowUserInteraction(false); 
conn.setRequestProperty("Content-Type", 
"application/x-www-form-urlencoded"); 

if (conn.getResponseCode() != 200) { 
throw new IOException(conn.getResponseMessage()); 
} 

// Buffer the result into a string 
BufferedReader rd = new BufferedReader(
new InputStreamReader(conn.getInputStream())); 
StringBuilder sb = new StringBuilder(); 
String line; 
while ((line = rd.readLine()) != null) { 
sb.append(line); 
} 
rd.close(); 

conn.disconnect(); 
return sb.toString(); 
} 
+0

감사 : 여기

는 볼 수 있는지의 샘플 코드입니다. 우리는 안드로이드 애플 리케이션과 REST 기반 webservice 연결할 수 있습니까? 그렇다면 어떻게? – Fundi

+0

내 대답 업데이트 – Tomer