net
Contents
net 은 HSP 의 Operation 또는 Hub 와 통신을 쉽게 사용하는 기능을 제공한다.
확장 프레임워크 파일을 추가하여 사용할 수 있으며 추가 방법은 iOS 개발 가이드 의 내용을 참조한다.
request
HSP 의 Operation 또는 Hub 와의 네트워크 통신 기능을 제공한다.
options
필드 | 필드 | 설명 | 비고 | M/O |
---|---|---|---|---|
target | 서버이름, OP가 미리 정의되어 있어야 함 | M | ||
path | 서비스 URL 구성을 위한 path | M | ||
method | HTTP 전송 방식
| 대소문자 구분 없음 | M | |
message | Header 와 Playload 로 구성되며 서버로 전송되는 실제 패킷. 개발 시에는 서버와 비즈앱 간의 합의된 규격서를 기반으로 작성된다. | O | ||
header | 패킷 공통 정보 | O | ||
payload | 전송 데이터 | O | ||
options | O | |||
requestTimeout | 네트워크 read/connection timeout 값 | O | ||
attachedFiles | Upload할 파일 데이터 | O | ||
Callback
필드 | 설명 | 비고 | M/O |
---|---|---|---|
successCallback | 응답 패킷의 내용 전달 | M | |
errorCallback | 오류 메시지 전달 | M | |
statusListener | Request 통신 진행 상황 전달 | O | |
successCallback
필드 | 설명 | 비고 |
---|---|---|
result | 응답 패킷의 내용 | |
errorCallback
필드 | 필드 | 설명 | 비고 |
---|---|---|---|
e | 오류 객체 | ||
code | 상세 오류 코드 | ||
message | 오류 메시지 | ||
statusListener (Optional)
필드 | 필드 | 설명 | 비고 |
---|---|---|---|
status | Request 통신 진행 상황
| ||
options | 파일 업로드/다운로드 시 제공되는 데이터 사이즈 | ||
totalByte | 전체 데이터 사이즈 | 단위 byte | |
currentByte | 현재 수신된 데이터 사이즈 | 단위 byte | |
Example
POST - 데이터 생성
let target = "hub1"
let path = "/notice/boards"
let method = "POST"
let message = [
"header": [:],
"payload": ["title": "[공지] iOS 18 업그레이드 패치 관련 공지",
"contents": "[공지] iOS 18 업그레이드 패치 관련 공지",
"postedAt": NSNumber(value: Int(Date().timeIntervalSince1970 * 1000.0))]
]
DAPNet.request(target,
path: path,
method: method,
message: message,
options: options,
completion: { [self] resultDict in
// todo
},
failure: { [self] error in
// todo
})
let path = "/notice/boards"
let method = "POST"
let message = [
"header": [:],
"payload": ["title": "[공지] iOS 18 업그레이드 패치 관련 공지",
"contents": "[공지] iOS 18 업그레이드 패치 관련 공지",
"postedAt": NSNumber(value: Int(Date().timeIntervalSince1970 * 1000.0))]
]
DAPNet.request(target,
path: path,
method: method,
message: message,
options: options,
completion: { [self] resultDict in
// todo
},
failure: { [self] error in
// todo
})
NSString *target = @"hub1";
NSString *path = @"/notice/boards";
NSString *method = @"POST";
NSDictionary *message = @{ @"header" : @{},
@"payload" : @{ @"title" : @"[공지] iOS 18 업그레이드 패치 관련 공지",
@"contents" : @"안녕하세요. iOS 18 업그레이드 패치 관련 내용입니다.",
@"postedAt" : [NSNumber numberWithLong: (long)([[NSDate date] timeIntervalSince1970] * 1000.0)]}};
[DAPNet request:target
path:path
method:method
message:message
options:nil
completion:^(NSDictionary *) {
// TODO
} failure:^(NSError *){
// TODO
}
];
NSString *path = @"/notice/boards";
NSString *method = @"POST";
NSDictionary *message = @{ @"header" : @{},
@"payload" : @{ @"title" : @"[공지] iOS 18 업그레이드 패치 관련 공지",
@"contents" : @"안녕하세요. iOS 18 업그레이드 패치 관련 내용입니다.",
@"postedAt" : [NSNumber numberWithLong: (long)([[NSDate date] timeIntervalSince1970] * 1000.0)]}};
[DAPNet request:target
path:path
method:method
message:message
options:nil
completion:^(NSDictionary *) {
// TODO
} failure:^(NSError *){
// TODO
}
];
POST - 파일 업로드
let target = "hub1"
let path = "/notice/boards/"
let method = "POST"
let message = ["header": [:],
"payload": ["title": "[공지] iOS 18 업그레이드 패치 관련 공지",
"contents": "[공지] iOS 18 업그레이드 패치 관련 공지",
"postedAt": NSNumber(value: Int(Date().timeIntervalSince1970 * 1000.0))]
]
let options = ["requestTimeout": 50000,
"attachedFiles": ["icon": "ios_logo.png",
"text": "contents.txt"]] as [String : Any]
DAPNet.request(target,
path: path,
method: method,
message: message,
options: options,
completion: { [self] resultDict in
// todo
},
failure: { [self] error in
// todo
})
let path = "/notice/boards/"
let method = "POST"
let message = ["header": [:],
"payload": ["title": "[공지] iOS 18 업그레이드 패치 관련 공지",
"contents": "[공지] iOS 18 업그레이드 패치 관련 공지",
"postedAt": NSNumber(value: Int(Date().timeIntervalSince1970 * 1000.0))]
]
let options = ["requestTimeout": 50000,
"attachedFiles": ["icon": "ios_logo.png",
"text": "contents.txt"]] as [String : Any]
DAPNet.request(target,
path: path,
method: method,
message: message,
options: options,
completion: { [self] resultDict in
// todo
},
failure: { [self] error in
// todo
})
NSString *target = @"hub1";
NSString *path = @"/notice/boards";
NSString *method = @"POST";
NSDictionary *message = @{ @"header" : @{},
@"payload" : @{ @"title" : @"[공지] iOS 18 업그레이드 패치 관련 공지",
@"contents" : @"안녕하세요. iOS 18 업그레이드 패치 관련 내용입니다.",
@"postedAt" : [NSNumber numberWithLong: (long)([[NSDate date] timeIntervalSince1970] * 1000.0)]}
};
NSDictionary *options = @{ @"requestTimeout" : @50000,
@"attachedFiles" : @{ @"icon" : @"ios_logo.png",
@"text" : @"contents.txt"}
};
[DAPNet request:target
path:path
method:method
message:message
options:options
completion:^(NSDictionary *) {
// TODO
} failure:^(NSError *){
// TODO
}
];
NSString *path = @"/notice/boards";
NSString *method = @"POST";
NSDictionary *message = @{ @"header" : @{},
@"payload" : @{ @"title" : @"[공지] iOS 18 업그레이드 패치 관련 공지",
@"contents" : @"안녕하세요. iOS 18 업그레이드 패치 관련 내용입니다.",
@"postedAt" : [NSNumber numberWithLong: (long)([[NSDate date] timeIntervalSince1970] * 1000.0)]}
};
NSDictionary *options = @{ @"requestTimeout" : @50000,
@"attachedFiles" : @{ @"icon" : @"ios_logo.png",
@"text" : @"contents.txt"}
};
[DAPNet request:target
path:path
method:method
message:message
options:options
completion:^(NSDictionary *) {
// TODO
} failure:^(NSError *){
// TODO
}
];
GET - 전체 조회
let target = "hub1"
let path = "/notice/boards"
let method = "GET"
let options = ["requestTimeout": 50000]
DAPNet.request(target,
path: path,
method: method,
message: message,
options: options,
completion: { [self] resultDict in
// todo
},
failure: { [self] error in
// todo
})
let path = "/notice/boards"
let method = "GET"
let options = ["requestTimeout": 50000]
DAPNet.request(target,
path: path,
method: method,
message: message,
options: options,
completion: { [self] resultDict in
// todo
},
failure: { [self] error in
// todo
})
NSString *target = @"hub1";
NSString *path = @"/notice/boards";
NSString *method = @"GET";
NSDictionary *options = @{ @"requestTimeout" : @50000};
[DAPNet request:target
path:path
method:method
message:nil
options:options
completion:^(NSDictionary *) {
// TODO
} failure:^(NSError *){
// TODO
}
];
NSString *path = @"/notice/boards";
NSString *method = @"GET";
NSDictionary *options = @{ @"requestTimeout" : @50000};
[DAPNet request:target
path:path
method:method
message:nil
options:options
completion:^(NSDictionary *) {
// TODO
} failure:^(NSError *){
// TODO
}
];
GET - 특정 데이터 조회
let target = "hub1"
let path = "/notice/boards"
let method = "GET"
let message = ["id": 110]
let options = ["requestTimeout": 50000]
DAPNet.request(target,
path: path,
method: method,
message: message,
options: options,
completion: { [self] resultDict in
// todo
},
failure: { [self] error in
// todo
})
let path = "/notice/boards"
let method = "GET"
let message = ["id": 110]
let options = ["requestTimeout": 50000]
DAPNet.request(target,
path: path,
method: method,
message: message,
options: options,
completion: { [self] resultDict in
// todo
},
failure: { [self] error in
// todo
})
NSString *target = @"hub1";
NSString *path = @"/notice/boards";
NSString *method = @"GET";
NSDictionary *message = @{ @"id" : @110 };
NSDictionary *options = @{ @"requestTimeout" : @50000};
[DAPNet request:target
path:path
method:method
message:message
options:options
completion:^(NSDictionary *) {
// TODO
} failure:^(NSError *){
// TODO
}
];
NSString *path = @"/notice/boards";
NSString *method = @"GET";
NSDictionary *message = @{ @"id" : @110 };
NSDictionary *options = @{ @"requestTimeout" : @50000};
[DAPNet request:target
path:path
method:method
message:message
options:options
completion:^(NSDictionary *) {
// TODO
} failure:^(NSError *){
// TODO
}
];
GET - 파일 다운로드
let target = "hub1"
let path = "/notice/boards/13/icon.png"
let method = "GET"
let options = ["requestTimeout": 50000]
DAPNet.request(target,
path: path,
method: method,
message: message,
options: options,
completion: { [self] resultDict in
// todo
},
failure: { [self] error in
// todo
})
let path = "/notice/boards/13/icon.png"
let method = "GET"
let options = ["requestTimeout": 50000]
DAPNet.request(target,
path: path,
method: method,
message: message,
options: options,
completion: { [self] resultDict in
// todo
},
failure: { [self] error in
// todo
})
NSString *target = @"hub1";
NSString *path = @"/notice/boards/13/icon.png";
NSString *method = @"GET";
NSDictionary *options = @{ @"requestTimeout" : @50000};
[DAPNet request:target
path:path
method:method
message:nil
options:options
completion:^(NSDictionary *) {
// TODO
} failure:^(NSError *){
// TODO
}
];
NSString *path = @"/notice/boards/13/icon.png";
NSString *method = @"GET";
NSDictionary *options = @{ @"requestTimeout" : @50000};
[DAPNet request:target
path:path
method:method
message:nil
options:options
completion:^(NSDictionary *) {
// TODO
} failure:^(NSError *){
// TODO
}
];
PUT - 데이터 갱신
let target = "hub1"
let path = "/notice/boards/110"
let method = "PUT"
let message = ["header": [:],
"payload": ["title": "[공지] iOS 18 업그레이드 패치 관련 공지 v2",
"contents": "안녕하세요. iOS 18 업그레이드 패치 관련 내용입니다.",
"postedAt": NSNumber(value: Int(Date().timeIntervalSince1970 * 1000.0))]
]
let options = ["requestTimeout": 50000]
DAPNet.request(target,
path: path,
method: method,
message: message,
options: options,
completion: { [self] resultDict in
// todo
},
failure: { [self] error in
// todo
})
let path = "/notice/boards/110"
let method = "PUT"
let message = ["header": [:],
"payload": ["title": "[공지] iOS 18 업그레이드 패치 관련 공지 v2",
"contents": "안녕하세요. iOS 18 업그레이드 패치 관련 내용입니다.",
"postedAt": NSNumber(value: Int(Date().timeIntervalSince1970 * 1000.0))]
]
let options = ["requestTimeout": 50000]
DAPNet.request(target,
path: path,
method: method,
message: message,
options: options,
completion: { [self] resultDict in
// todo
},
failure: { [self] error in
// todo
})
NSString *target = @"hub1";
NSString *path = @"/notice/boards/110";
NSString *method = @"PUT";
NSDictionary *message = @{ @"header" : @{},
@"payload" : @{ @"title" : @"[공지] iOS 18 업그레이드 패치 관련 공지 v2",
@"contents" : @"안녕하세요. iOS 18 업그레이드 패치 관련 내용입니다.",
@"postedAt" : [NSNumber numberWithLong: (long)([[NSDate date] timeIntervalSince1970] * 1000.0)]}
};
NSDictionary *options = @{ @"requestTimeout" : @50000};
[DAPNet request:target
path:path
method:method
message:message
options:options
completion:^(NSDictionary *) {
// TODO
} failure:^(NSError *){
// TODO
}
];
NSString *path = @"/notice/boards/110";
NSString *method = @"PUT";
NSDictionary *message = @{ @"header" : @{},
@"payload" : @{ @"title" : @"[공지] iOS 18 업그레이드 패치 관련 공지 v2",
@"contents" : @"안녕하세요. iOS 18 업그레이드 패치 관련 내용입니다.",
@"postedAt" : [NSNumber numberWithLong: (long)([[NSDate date] timeIntervalSince1970] * 1000.0)]}
};
NSDictionary *options = @{ @"requestTimeout" : @50000};
[DAPNet request:target
path:path
method:method
message:message
options:options
completion:^(NSDictionary *) {
// TODO
} failure:^(NSError *){
// TODO
}
];
PUT - 데이터 갱신, 파일 업로드
let target = "hub1"
let path = "/notice/boards/110"
let method = "PUT"
let message = ["header": [:],
"payload": ["title": "[공지] iOS 18 업그레이드 패치 관련 공지 v2",
"contents": "안녕하세요. iOS 18 업그레이드 패치 관련 내용입니다.",
"postedAt": NSNumber(value: Int(Date().timeIntervalSince1970 * 1000.0))]
]
let options = ["requestTimeout": 50000,
"attachedFiles": ["icon": "ios_logo.png",
"text": "contents.txt"]] as [String : Any]
DAPNet.request(target,
path: path,
method: method,
message: message,
options: options,
completion: { [self] resultDict in
// todo
},
failure: { [self] error in
// todo
})
let path = "/notice/boards/110"
let method = "PUT"
let message = ["header": [:],
"payload": ["title": "[공지] iOS 18 업그레이드 패치 관련 공지 v2",
"contents": "안녕하세요. iOS 18 업그레이드 패치 관련 내용입니다.",
"postedAt": NSNumber(value: Int(Date().timeIntervalSince1970 * 1000.0))]
]
let options = ["requestTimeout": 50000,
"attachedFiles": ["icon": "ios_logo.png",
"text": "contents.txt"]] as [String : Any]
DAPNet.request(target,
path: path,
method: method,
message: message,
options: options,
completion: { [self] resultDict in
// todo
},
failure: { [self] error in
// todo
})
NSString *target = @"hub1";
NSString *path = @"/notice/boards/110";
NSString *method = @"PUT";
NSDictionary *message = @{ @"header" : @{},
@"payload" : @{ @"title" : @"[공지] iOS 18 업그레이드 패치 관련 공지 v2",
@"contents" : @"안녕하세요. iOS 18 업그레이드 패치 관련 내용입니다.",
@"postedAt" : [NSNumber numberWithLong: (long)([[NSDate date] timeIntervalSince1970] * 1000.0)]}
};
NSDictionary *options = @{ @"requestTimeout" : @50000,
@"attachedFiles" : @{ @"icon" : @"ios_logo.png",
@"text" : @"contents.txt"}
};
[DAPNet request:target
path:path
method:method
message:message
options:options
completion:^(NSDictionary *) {
// TODO
} failure:^(NSError *){
// TODO
}
];
NSString *path = @"/notice/boards/110";
NSString *method = @"PUT";
NSDictionary *message = @{ @"header" : @{},
@"payload" : @{ @"title" : @"[공지] iOS 18 업그레이드 패치 관련 공지 v2",
@"contents" : @"안녕하세요. iOS 18 업그레이드 패치 관련 내용입니다.",
@"postedAt" : [NSNumber numberWithLong: (long)([[NSDate date] timeIntervalSince1970] * 1000.0)]}
};
NSDictionary *options = @{ @"requestTimeout" : @50000,
@"attachedFiles" : @{ @"icon" : @"ios_logo.png",
@"text" : @"contents.txt"}
};
[DAPNet request:target
path:path
method:method
message:message
options:options
completion:^(NSDictionary *) {
// TODO
} failure:^(NSError *){
// TODO
}
];
DELETE - 데이터 삭제
let target = "hub1"
let path = "/notice/boards/110"
let method = "DELETE"
let options = ["requestTimeout": 50000]
DAPNet.request(target,
path: path,
method: method,
message: message,
options: options,
completion: { [self] resultDict in
// todo
},
failure: { [self] error in
// todo
})
let path = "/notice/boards/110"
let method = "DELETE"
let options = ["requestTimeout": 50000]
DAPNet.request(target,
path: path,
method: method,
message: message,
options: options,
completion: { [self] resultDict in
// todo
},
failure: { [self] error in
// todo
})
NSString *target = @"hub1";
NSString *path = @"/notice/boards/110";
NSString *method = @"DELETE";
NSDictionary *options = @{ @"requestTimeout" : @50000};
[DAPNet request:target
path:path
method:method
message:nil
options:options
completion:^(NSDictionary *) {
// TODO
} failure:^(NSError *){
// TODO
}
];
NSString *path = @"/notice/boards/110";
NSString *method = @"DELETE";
NSDictionary *options = @{ @"requestTimeout" : @50000};
[DAPNet request:target
path:path
method:method
message:nil
options:options
completion:^(NSDictionary *) {
// TODO
} failure:^(NSError *){
// TODO
}
];
Error Code
Code | Cause | Comment |
---|---|---|
E12800 | 파라메터 값이 잘못되어 있을 경우 | |
E12801 | 전달된 액션 값이 알 수 없는 액션일 경우 | |
E12802 | 통신할 서버 이름이 null 이거나 빈 값이고 설정 정보에 없는 경우 | |
E12803 | 서비스 정보가 null 이거나 빈 값인 경우 | |
E12804 | 데이터 전송 방식이 post, get, put, delete 외 다른 값인 경우 | |
E12805 | 타임아웃이 0~2147483647 사이의 정수값이 아닌 경우 | |
E12806 | 서버로 업로드 할 첨부 파일 정보가 잘못되어 있을 경우 | |
E12807 | 서버로 전송되는 패킷 공통 정보가 잘못되어 있을 경우 | |
E12808 | 서버로 전송되는 전송 데이터가 잘못되어 있을 경우 | |
E12850 | 실행 중 오류가 발생 되었을 경우 | |
E12851 | 실행 중 업로드할 파일이 존재하지 않을 경우 | |
E12852 | 서버로 부터 전달받은 응답 메시지가 없는 경우 | |
E12853 | 서버로 부터 전달받은 응답 메시지가 잘못되어 있는 경우 | |
E12899 | 알 수 없는 오류가 발생 되었을 경우 | |