앱을 제작하면서 서버와 값을 주고 받는 일이 많다.
(현재 내가 제작하는 앱은 값을 주고, 결과를 XML로 받는다.)
값을 주고 받기에 편하기 위해 ASIHTTP 라이브러리를 이용했다.
1. 라이브러리를 다운 받는다.
http://allseeing-i.com/ASIHTTPRequest/
다운 받으면 Iphone용 프로젝트를 열어서 'External' 폴더와 'Classes' 폴더를 나의 프로젝트로 옮겨 넣는다.
옮긴후 'Tests' 폴더는 삭제한다.
테스트 한 결과 에러만 잔득 만들어 내고 필요 없다.
2. 프레임웍 추가
http://allseeing-i.com/ASIHTTPRequest/Setup-instructions
여기에도 나와있듯이 아래와 같은 프레임웍을 추가한다.
CFNetwork.framework
SystemConfiguration.framework,
MobileCoreServices.framework,
CoreGraphics.framework
libz.1.2.3.dylib
libxml2.dylib
3. Header Search Paths 추가
${SDK_DIR}/usr/include/libxml2
4. 이후 코딩은 http://allseeing-i.com/ASIHTTPRequest/How-to-use 이곳 참고하면 된다.
5. 값을 보내고 받은 xml은 NSString 형태로 받게 되고, 아래와 같이 xml로 바꿔서 파싱해주면 된다.
(NSString 으로 받은걸 좀더 쉽게 파싱하는 방법이 있으면 좋으련만, 서치한걸로는 이 방법이 최선이라 생각된다.)
NSData *data = [response dataUsingEncoding:NSUTF8StringEncoding];
NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:data ];
6. xml 파싱은 NSXMLParser 이용하면 된다. 따로 포스트 할 예정이다.
(많이 복잡한 xml이라면 다른 라이브러리를 사용하겠지만 결과로 받은 xml은 짧으므로 기본 클래스를 이용할 예정)