티스토리 뷰
멀티파트 파일 전송방법.
라이브러리를 사용하면 그냥 아주 쉽게 되지만. 그래도 개념은 알아야 하니깐.
나는 dictionary 부분에 NSData를 넣어주어서, 사용하도록 하였음.
구조는 간단함.
바운더리
내용
바운더리
내용
바운더리
이러한 형식으로 데이터를 전송하면 됨.
아래는 소스. 서버 환경에 맞춰서 잘 구성하시면 됨.
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:timeOut];
[request setHTTPMethod:@"POST"];
NSString *boundary = [NSString stringWithFormat:@"---------------------sdaklfjsdalkfasdlfjsadlf32344-----sadfjk324"];
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary];
[*request addValue:contentType forHTTPHeaderField:@"Content-Type"];
NSMutableData *body = [NSMutableData data];
for(NSString *key in [dictionary allKeys]) {
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
id value = [dictionary objectForKey:key];
if([value isKindOfClass:[NSData class]]) {
NSString *dispositionFormat = @"Content-Disposition: form-data; name=\"%@\"; filename=\"%@\"\r\n]";
[body appendData:[[NSString stringWithFormat:dispositionFormat, key, key] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"Content-Type: application/octet-stream\r\n\r\n]"]
dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:(NSData*)value];
} else {
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\";\r\n\r\n]", key]
dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithString:(NSString*)value]
dataUsingEncoding:NSUTF8StringEncoding]];
}
}
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[*request setHTTPBody:body];
'Mobile > iOS' 카테고리의 다른 글
[iOS] 앱 이름 지역화 (0) | 2016.11.08 |
---|---|
[iOS] View Capture (0) | 2016.11.08 |
[iOS.Objective-C] UIWebView에 Header 붙이기 (1) | 2016.10.20 |
[iOS][Objective-C] 클립보드 (0) | 2016.09.13 |
[iOS][Objective-C] TableView button selector로 사용할 경우 indexPath 가져오기 (0) | 2016.09.08 |
- Total
- Today
- Yesterday
- git
- cocoapods
- Kotlin
- github
- Codable
- CentOS
- Gradle
- php
- windows10
- ubuntu
- centos8
- Linux
- war
- go
- android
- MySQL
- rxswift
- intellij
- Java
- Xcode
- docker
- ios
- Windows
- tomcat
- golang
- Spring
- SWIFT
- enum
- nodejs
- Python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |