Spring For Android, Rest Client 를 사용한 서버와의 통신
프로그래밍/Android 2013. 9. 4. 22:04Spring For Android, Rest Client 를 사용한 서버와의 통신
Spring For Android 는 안드로이드 애프리케이션 개발을 단순화하기 위한 Spring 프레임워크의 확장이다. 라고 정의가 되어 있네요
주요 지원하는 기능을 살펴보면 아래와 같습니다.
첫째. 안드로이드용 Rest Client
- Rest Client 를 통해서 서버와의 통신을 쉽게 처리할 수 있습니다.
둘째. Auth support for accessing secure APIs
- 인증 관련 지원 입니다.
Rest Client 를 사용해서 서버와의 통신을 지원하게 되면서 서버와 데이터를 손쉽게 주고 받을 수 있습니다.
서버 통신 예제
public class HttpGetActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_http_get);
}
@Override
protected void onStart() {
super.onStart();
new HttpGetTask().execute( 10);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.http_get, menu);
return true;
}
public void showResult( UserModel model){
TextView view = (TextView)findViewById( R.id.textview);
if( model != null){
view.setText( "id : " + model.getId() + ", name : " + model.getName());
}
}
class HttpGetTask extends AsyncTask<Integer, Void, UserModel>{
@Override
protected UserModel doInBackground(Integer... params) {
final String url = "http://192.168.56.1/zadu/user/{id}";
// Accept header "application/json" 을 명시하여 JSON 데이터를 리턴받길 원한다고 설정해 줍니다.
HttpHeaders requestHeaders = new HttpHeaders();
List<MediaType> acceptableMediaTypes = new ArrayList<MediaType>();
acceptableMediaTypes.add(MediaType.APPLICATION_JSON);
requestHeaders.setAccept(acceptableMediaTypes);
// Rest Template 객체에서 사용할 reqeustEntity 를 위에서 정의한 request Header 를 사용해서 생성합니다.
HttpEntity<?> requestEntity = new HttpEntity<Object>(requestHeaders);
// 서버와의 통신을 담당할 RestTemplate 객체를 생성합니다.
RestTemplate restTemplate = new RestTemplate();
// MappingJacksonHttpMessageConverter 를 통해서 결과값인 JSON 데이터를 UserModel 데이터로 변환할 수 있습니다.
MappingJacksonHttpMessageConverter converter = new MappingJacksonHttpMessageConverter();
restTemplate.getMessageConverters().add(converter);
// HTTP GET 요청을 수행합니다.
ResponseEntity<UserModel> responseEntity = restTemplate.exchange(url, HttpMethod.GET, requestEntity, UserModel.class, params[0]);
// 결과값을 받아옵니다.
return responseEntity.getBody();
}
@Override
protected void onPostExecute(UserModel result) {
// 결과값을 찍어줍니다.
showResult(result);
}
}
}
'프로그래밍 > Android' 카테고리의 다른 글
안드로이드 SqlLite Database ORM 프레임웤 greenDAO (0) | 2013.09.10 |
---|---|
안드로이드 로그 프레임웤 logback (0) | 2013.09.10 |
안드로이드 Loader 활용하기 (0) | 2013.09.02 |
안드로이드 Fragment에서 Activity 와 통신하기 (3) | 2013.09.02 |
안드로이드 이미지 캐쉬하기 (0) | 2013.08.30 |