'2014/08'에 해당되는 글 10건

  1. 2014.08.22 [android] android 에서 loopj http client 이용하기
반응형

android 의 HTTP 클라이언트 라이브러리에 대한 설명은 다음의 URL을 참고할만하다.

http://helloworld.naver.com/helloworld/377316


이번 포스팅에서는 이중 loopj 를 이용하여 rest api를 호 출하는 방법을 살펴보겠다. loopj 는 다음의 URL에서 다운로드 할수 있다.

http://loopj.com/android-async-http/


설치는 android studio의 build.gradle 에 다음을 추가해 주면 된다.

 dependencies {   

    compile 'com.loopj.android:android-async-http:1.4.5'

} 


HTTP 접근을 위해서는 INTERNET Permission이 필요하다. android.manifest 에 다음의 퍼미션을 추가해 준다.

</application>    

<uses-permission

        android:name="android.permission.INTERNET"></uses-permission>

</manifest>


1. AsyncHttpClient 설정

AsyncHttpClient 를 선언하고 onCreate에서 생성해준다.

private AsyncHttpClient mHttpClient;

.....

....

@Override

protected void onCreate(Bundle savedInstanceState){

.......

mHttpClient=new AsyncHttpClient();

}


2. JSON Message를 POST 하기

JSONObject 객체를 이용하고 AsyncHttpClient의 post 메소드를 이용한다.


postBodyMsg.put("testkey","testvalue");

StringEntity entity=new StringEntity(postBodyMsg.toString());

mHttpClient.post(this.getApplicationContext(),"http://testurl/test",entity,"application/json",

new AsyncHttpResponseHandler() {

@Override

public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {

Log.d(TAG,"Http Post Success");

Log.d(TAG,"Received Msg:"+responseBody.toString());

}

@Override

public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {

Log.d(TAG,"Http Post Fail");

Log.d(TAG,"Status Code:"+statusCode);

}

});


post 메소드에는 [context], [url string], [bodymsg string], [contents-type string], [responsehandler] 가 입력이 된다.


3. URL에 GET 요청 보내기

URL에 GET 요청 보내는 것은 간단한다.

mHttpClient.get("http://testurl/testget",new AsyncHttpResponseHandler() {

@Override

public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {

Log.d(TAG,"Http get Success");

Log.d(TAG,"Received Msg:"+responseBody.toString());

}

@Override

public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {

Log.d(TAG,"Http get Fail");

Log.d(TAG,"Status Code:"+statusCode);

Log.d(TAG,"Error:"+error.getMessage());

}

});

반응형
Posted by alias
,