Skip to content

wifi-z/maybe-async-http-with-loopj

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

maybe-async-http

android async http client

파싱된 데이터를 저장하는 클래스

public class TestData {
    @JsonProperty("member")
    private ArrayList status;

    public String getStatus() {
        return status.get(0).name;
    }


    public static class Member {
        @JsonProperty("custName")
        private String name;
    }
}

api 주소 구성 enum 구현

public enum Api implements Protocol {
    TEST("url");

    String url;

    Api(String url) {
        this.url = url;
    }

    @Override
    public String getUrl() {
        return url;
    }
}

응답 클래스

public abstract class JsonResponse implements JsonAsyncHttpResponse {
    @Override
    public void onSuccess(RequestToJson requestData) {
        onCompleted(requestData);
    }

    @Override
    public void onFailure(RequestToJson requestData) {
        onCompleted(requestData);
    }

    @Override
    public void onProgress(long size, long totalSize, float percent) {

    }

    @Override
    public abstract void onCompleted(RequestToJson requestData);
}

단일 리퀘스트

private void singleRequest() {
    RequestToJson request = new RequestToJson.Builder(Api.TEST, HttpMethod.GET, TestData.class, new JsonResponse() {
        @Override
        public void onCompleted(RequestToJson requestData) {
            TestData response = (TestData) requestData.getDeserializeObject();
      
        }
    }).addParameter("key", "value").build();

    AsyncHttp asyncHttp = new AsyncHttp();
    asyncHttp.sendRequest(request);
}

비동기 멀티 리퀘스트 - 리퀘스트간 순서가 상관 없다면..

private void asyncMultiRequest() {
    RequestToJson request1 = new RequestToJson.Builder(
            Api.TEST,
            HttpMethod.GET, TestData.class, new JsonResponse() {
        @Override
        public void onCompleted(RequestToJson requestData) {
        }
    }).addParameter("key", "value").build();

    RequestToJson request2 = new RequestToJson.Builder(
            Api.TEST,
            HttpMethod.GET, TestData.class, new JsonResponse() {
        @Override
        public void onCompleted(RequestToJson requestData) {
        }
    }).addParameter("key", "value").build();

    AsyncHttp asyncHttp = new AsyncHttp();
    AsyncRequests asyncRequests = new AsyncRequests.Builder(asyncHttp, new RequestsResponse() {
        @Override
        public void requestFinished() {
        }
    }).addRequest(request1).addRequest(request2).build();

    asyncRequests.sendRequest();
}

동기 멀티 리퀘스트 - 리퀘스트간 순서가 보장되어야 한다면..

private void syncMultiRequest() {
    RequestToJson request1 = new RequestToJson.Builder(
            Api.TEST,
            HttpMethod.GET, TestData.class, new JsonResponse() {
        @Override
        public void onCompleted(RequestToJson requestData) {
        }
    }).addParameter("key", "value").build();

    RequestToJson request2 = new RequestToJson.Builder(
            Api.TEST,
            HttpMethod.GET, TestData.class, new JsonResponse() {
        @Override
        public void onCompleted(RequestToJson requestData) {
        }
    }).addParameter("key", "value").build();

    AsyncHttp asyncHttp = new AsyncHttp();
    SyncRequests syncRequests = new SyncRequests.Builder(asyncHttp, new RequestsResponse() {
        @Override
        public void requestFinished() {
        }
    }).addRequest(request1).addRequest(request2).build();

    syncRequests.sendRequest();
}

Thanks

http://loopj.com/android-async-http/ - Android Async Http Client.
https://github.com/FasterXML - jackson.

License

Copyright wifi-z

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

About

android async http client

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages