network


network 은 HSP 에서 기본으로 제공하는 API로 별도의 설정 없이 사용 가능하다.

network HSP 의 Operation 또는 Hub 와 통신을 쉽게 사용하기 위해서 만들어졌으며 서버와 주고 받는 데이터는 MessageContainer 을 통해 전달할 수 있다.

MessageContainer Class

public final class MessageContainer<T> implements Serializable {
    private Map<String, Object> context;
    private HoneMobileMessage<T> message;
}

HoneMobileMessage Class

public final class HoneMobileMessage<P> implements Serializable {
    private Map<String, Object> header;
    private P payload;
}

doPost

doPost 는 POST 형식으로 HSP 의 Operation 또는 Hub 에 데이터를 전달한다. 

options

필드필드설명M/O
context 서버로 데이터 전송에 필요한 정보M
targetName서버이름, OP가 미리 정의되어 있어야 함M
serviceCategory서비스 카테고리M
serviceName서비스 이름M
message Header 와 Playload 로 구성되며 서버로 전송되는 실제 패킷.
개발 시에는 서버와 비즈앱 간의 합의된 규격서를 기반으로 작성된다. 
O
header패킷 공통 정보O
payload전송 데이터O
     

Example

val container = MessageContainer<Map<String, Any>>().apply {
    setContext(hashMapOf<String, Any>().apply {
        put("targetName", "hub1")
        put("serviceCategory", "notice")
        put("serviceName", "getNotice")
   })
    setMessage(HoneMobileMessage<Map<String, Any>>().apply {
        setPayload(hashMapOf<String, Any>().apply {
            put("pageNumber", 1)
            put("rowsPerPage", 10)
       })
   })
}

DAPNetwork.doPost(this@MainActivity, container, {
   // TODO
}) {
   // TODO
}
Map<String, Object> context = new HashMap<>();
context.put("targetName", "hub1");
context.put("serviceCategory", "notice");
context.put("serviceName", "getNotice");

Map<String, Object> payload = new HashMap<>();
payload.put("pageNumber", 1);
payload.put("rowsPerPage", 10);

HoneMobileMessage<Map<String, Object>> message = new HoneMobileMessage<>();
message.setPayload(payload);

MessageContainer<Map<String, Object>> container = new MessageContainer<>();
container.setContext(context);
container.setMessage(message);

DAPNetwork.doPost(MainActivity.this, container, result -> {
       // TODO
   }, e -> {
       // TODO
   });

doUpload

doUpload 는 HSP 의 Hub 에 파일 업로드를 요청 한다. 

options

필드필드설명M/O
context 서버로 데이터 전송에 필요한 정보M
targetName서버이름, OP가 미리 정의되어 있어야 함M
serviceCategory서비스 카테고리M
serviceName서비스 이름M
message Header 와 Playload 로 구성되며 서버로 전송되는 실제 패킷.
개발 시에는 서버와 비즈앱 간의 합의된 규격서를 기반으로 작성된다. 
M
header패킷 공통 정보O
payload전송 데이터M
     

Example

val path = "/data/user/0/com.hanwha.testhonemobile/files/hone_repository/bizAppId/test.png"

val container = MessageContainer<Map<String, Any>>().apply {
    setContext(hashMapOf<String, Any>().apply {
        put("targetName", "hub1")
        put("serviceCategory", "util")
        put("serviceName", "fileUpload")
   })
    setMessage(HoneMobileMessage<Map<String, Any>>().apply {
        setPayload(hashMapOf<String, Any>().apply {
            put("files", arrayListOf(path))
       })
   })
}

DAPNetwork.doUpload(this@MainActivity, container, {
   // TODO
}) {
   // TODO
}
Map<String, Object> context = new HashMap<>();
context.put("targetName", "hub1");
context.put("serviceCategory", "util");
context.put("serviceName", "fileUpload");

String path = "/data/user/0/com.hanwha.testhonemobile/files/hone_repository/bizAppId/test.png";
ArrayList<String> pathes = new ArrayList<>();
pathes.add(path);

Map<String, Object> payload = new HashMap<>();
payload.put("files", pathes);

HoneMobileMessage<Map<String, Object>> message = new HoneMobileMessage<>();
message.setPayload(payload);

MessageContainer<Map<String, Object>> container = new MessageContainer<>();
container.setContext(context);
container.setMessage(message);

DAPNetwork.doUpload(MainActivity.this, container, result -> {
       // TODO
   }, e -> {
       // TODO
   });

doDownload

doDownload 는 HSP 의 Hub 에 파일 다운로드를 요청 한다. 

options

필드필드설명M/O
context 서버로 데이터 전송에 필요한 정보M
targetName서버이름, OP가 미리 정의되어 있어야 함M
serviceCategory서비스 카테고리M
serviceName서비스 이름M
message Header 와 Playload 로 구성되며 서버로 전송되는 실제 패킷.
개발 시에는 서버와 비즈앱 간의 합의된 규격서를 기반으로 작성된다. 
M
header패킷 공통 정보O
payload전송 데이터M
     

Example

val container = MessageContainer<Map<String, Any>>().apply {
    setContext(hashMapOf<String, Any>().apply {
        put("targetName", "hub1")
        put("serviceCategory", "util")
        put("serviceName", "fileDownload")
   })
    setMessage(HoneMobileMessage<Map<String, Any>>().apply {
        setPayload(hashMapOf<String, Any>().apply {
            put("userId", "user")
            put("key2", "value")
            put("files", arrayListOf("/test.png"))
       })
   })
}

DAPNetwork.doDownload(this@MainActivity, container, {
   // TODO
}) {
   // TODO
}
Map<String, Object> context = new HashMap<>();
context.put("targetName", "hub1");
context.put("serviceCategory", "util");
context.put("serviceName", "fileDownload");

ArrayList<String> files = new ArrayList<>();
files.add("/test.png");

Map<String, Object> payload = new HashMap<>();
payload.put("userId", "user");
payload.put("files", files);
payload.put("key2", "value");

HoneMobileMessage<Map<String, Object>> message = new HoneMobileMessage<>();
message.setPayload(payload);

MessageContainer<Map<String, Object>> container = new MessageContainer<>();
container.setContext(context);
container.setMessage(message);

DAPNetwork.doDownload(MainActivity.this, container, result -> {
       // TODO
   }, e -> {
       // TODO
   });

doUploadWithProgress

doUploadWithProgress 는 HSP 의 Hub 에 파일 업로드를 요청하면서 진행 상황을 전달 받는다. 

options

필드필드설명M/O
context 서버로 데이터 전송에 필요한 정보M
targetName서버이름, OP가 미리 정의되어 있어야 함M
serviceCategory서비스 카테고리M
serviceName서비스 이름M
message Header 와 Playload 로 구성되며 서버로 전송되는 실제 패킷.
개발 시에는 서버와 비즈앱 간의 합의된 규격서를 기반으로 작성된다. 
M
header패킷 공통 정보O
payload전송 데이터M
     

Example

val path = "/data/user/0/com.hanwha.testhonemobile/files/hone_repository/bizAppId/test.png"

val container = MessageContainer<Map<String, Any>>().apply {
    setContext(hashMapOf<String, Any>().apply {
        put("targetName", "hub1")
        put("serviceCategory", "util")
        put("serviceName", "fileUpload")
   })
    setMessage(HoneMobileMessage<Map<String, Any>>().apply {
        setPayload(hashMapOf<String, Any>().apply {
            put("files", arrayListOf(path))
       })
   })
}

DAPNetwork.doUploadWithProgress(this@MainActivity, container, {
   // TODO
}, {
   // TODO
}, object: OnUpdateListener() {
    override fun onProgress(currentByte: Long, totalByte: Long, percent: Int) {
       // TODO
   }
})
Map<String, Object> context = new HashMap<>();
context.put("targetName", "hub1");
context.put("serviceCategory", "util");
context.put("serviceName", "fileUpload");

String path = "/data/user/0/com.hanwha.testhonemobile/files/hone_repository/bizAppId/test.png";
ArrayList<String> pathes = new ArrayList<>();
pathes.add(path);

Map<String, Object> payload = new HashMap<>();
payload.put("files", pathes);

HoneMobileMessage<Map<String, Object>> message = new HoneMobileMessage<>();
message.setPayload(payload);

MessageContainer<Map<String, Object>> container = new MessageContainer<>();
container.setContext(context);
container.setMessage(message);

DAPNetwork.doUploadWithProgress(MainActivity.this, container, result -> {
       // TODO
   }, e -> {
       // TODO
   }, new OnUpdateListener() {
       @Override
       public void onProgress(long currentByte, long totalByte, int percent) {
           // TODO
       }
   });

doDownloadWithProgress

doDownloadWithProgress 는 HSP 의 Hub 에 파일 다운로드를 요청 하면서 진행 상황을 전달 받는다. 

options

필드필드설명M/O
context 서버로 데이터 전송에 필요한 정보M
targetName서버이름, OP가 미리 정의되어 있어야 함M
serviceCategory서비스 카테고리M
serviceName서비스 이름M
message Header 와 Playload 로 구성되며 서버로 전송되는 실제 패킷.
개발 시에는 서버와 비즈앱 간의 합의된 규격서를 기반으로 작성된다. 
M
header패킷 공통 정보O
payload전송 데이터M
     

Example

val container = MessageContainer<Map<String, Any>>().apply {
    setContext(hashMapOf<String, Any>().apply {
        put("targetName", "hub1")
        put("serviceCategory", "util")
        put("serviceName", "fileDownload")
   })
    setMessage(HoneMobileMessage<Map<String, Any>>().apply {
        setPayload(hashMapOf<String, Any>().apply {
            put("userId", "user")
            put("key2", "value")
            put("files", arrayListOf("/test.png"))
       })
   })
}

DAPNetwork.doDownloadWithProgress(this@MainActivity, container, {
   // TODO
}, {
   // TODO
}, object: OnUpdateListener() {
        override fun onProgress(currentByte: Long, totalByte: Long, percent: Int) {
           // TODO
       }
})
Map<String, Object> context = new HashMap<>();
context.put("targetName", "hub1");
context.put("serviceCategory", "util");
context.put("serviceName", "fileDownload");

ArrayList<String> files = new ArrayList<>();
files.add("/test.png");

Map<String, Object> payload = new HashMap<>();
payload.put("userId", "user");
payload.put("files", files);
payload.put("key2", "value");

HoneMobileMessage<Map<String, Object>> message = new HoneMobileMessage<>();
message.setPayload(payload);

MessageContainer<Map<String, Object>> container = new MessageContainer<>();
container.setContext(context);
container.setMessage(message);

DAPNetwork.doDownloadWithProgress(MainActivity.this, container, result -> {
       // TODO
   }, e -> {
       // TODO
   }, new OnUpdateListener() {
       @Override
       public void onProgress(long currentByte, long totalByte, int percent) {
           // TODO
       }
   });

Error Code

CodeCauseComment
E10600파라메터 값이 잘못되어 있을 경우 
E10601전달된 액션 값이 알 수 없는 액션일 경우 
E10602서버로 데이터 전송에 필요한 정보가 잘못되어 있을 경우 
E10603서버로 전송되는 실제 패킷 정보가 잘못되어 있을 경우 
E10604서버 이름이 잘못되어 있을 경우 
E10605서비스 카테고리가 잘못되어 있을 경우 
E10606서비스 이름이 잘못되어 있을 경우 
E10607전송 데이터가 잘못되어 있을 경우 
E10608업로드할 파일 정보가 잘못되어 있을 경우 
E10650실행 중 오류가 발생 되었을 경우 
E10651실행 중 업로드할 파일이 존재하지 않을 경우  
E10652서버로 부터 전달받은 응답 메시지가 없는 경우 
E10653서버로 부터 전달받은 응답 메시지가 잘못되어 있는 경우 
E10699알 수 없는 오류가 발생 되었을 경우