타이타늄에서 HttpClient 방식으로 xml문서를 feed 받는거 질문 드립니다

안녕하세요, 이번에 타이타늄을 처음 접해 봅니다.

var win = Ti.UI.currentWindow;
var xhr = Titanium.Network.createHTTPClient();

xhr.onload = function() {
Ti.API.info(this.responseText);
};

xhr.onerror = function() {
Ti.API.info(this.status + ’ - ’ + this.statusText);
};

xhr.open(‘GET’, ‘http://www.taste.com.au/feeds/latest+recipes.xml’);
xhr.send();

책에서 예제를 하면서 따라 하고 있는데, 데이터를 불러오지 못하는 듯 합니다… ㅠㅠ
지금 현재 개발환경은 Mac버젼이구요, Windows에서 하면 잘 되는데, Mac이 문제네요…
이런 경우에는 어떻게 하나요?

윈도우에서 하면 되고 맥에서는 안된다니 이상하네요.
실행을 에뮬레이터에 하시는지 아니면 디바이스에 하시는지 여부나 실행하는 디바이스(에뮬,시뮬)의 버전 및 tisdk 버전등 환경정보를 알려주시면 빠르고 정확한 답변을 받는데 도움이 됩니다. 질문 올려 빠른 답변 얻는 방법 글을 참고해 주세요.

시뮬레이터에서 실행하시는거라면 혹시 시뮬레이터의 브라우저에서 인터넷이 정상작동하는지 확인해보세요.

아… 급하게 적느라고 미처 생각을 못했습니다.

지금은 현재 애뮬레이터로 구동중에 있구요,
제가 말한 Windows, Mac 은 브라우져(사파리, IE)로 보았을 때 열리는 것을 말했습니다.
애뮬레이터는 iOS 7.0 버젼으로 하고 있구요.

현재 디버깅 코드인 Ti.API.info(this.responseText);
이것도 출력이 되지 않아 답답하네요…

혹시 iOS SDK 버젼의 문제인가요? 그런것 같지는 않은데 말이죠…
책의 내용을 가지고 그대로 코딩을 해보고 있는데 무슨 문제인지 잘 모르겠습니다.

status 가 200으로 바뀌지 않으면 this.responseText 가 제대로 나올리가 없지요.
status 가 바뀌는지 안바뀌는지 체크를 해보세요.

지금 현재 Ti.API.info(); 구문을 좀 많이 달아놨는데,
아무것도 안뜨고 있네요…
지금 현재 탭으로 구분 해놓고 윈도우 분할해서
윈도우 1, 2에 Ti.API.info(“blra~blra~”); 이렇게 달아놨는데,
아무것도 안나오네요 ㅠㅠ

아마도 매버릭 업데이트 이후인듯 싶은데,… 타이타늄 스튜디오에 문제가 있는것 같아요. 로그파일은 생성이 되지만 일반 실행모드에서는 콘솔에 로그가 찍히지 않습니다. 그래서 꼭 디버그 모드로 실행하셔서 확인하세요. 일단 alert()을 이용해 데이터 찍어보시구요. alert이 안되면 코드나 피드에 문제가 있는 겁니다. 일단 alert으로 되는지 부턱 확인을… 쿨럭~

@Rusi_Code 질문 올려주실 때 os 버전등 자세히 알려주세요.^^

병대님 말씀처럼 매버릭스 환경이라면 3.2.x rc 최신버전을 사용하시면 됩니다. 3.2.0 버전은 곧 출시 예정이라고 합니다.

@realrap 3.2.x rc 최신을 깔아도 안되나요? ^^

http://preview.appcelerator.com/studio/

결국, 점점 httpclient 와는 무관한 ‘어처구니없는’ 일이 되고 있죠… ㅋㅋㅋㅋ

이 글을 참고하세요. @rapodor 님의 댓글을 보면 최신 rc를 깔면 다 잘 된다고 합니다.^^

감사합니다.

제 말은 HttpClient가 안되는데, Ti.API.info(); 역시 안된다는 점 입니다 ㅎㅎ

올려주신 답글에 나와 있는 것 보고 답글 드리겠습니다.
도움 감사합니다 ^^

@yomybaby 넹~ 최신버전깔아도 Mac에선 여전히 안 나옵니다.

여전히 안나오네요… 흐음…
android, iOS 애뮬레이터 둘다 안됩니다.

저는 맥북을 새로 사서 업그래이드 버젼 매버릭스가 아닌데 혹시 그것과 연관 있지는 않겠죠?..

올리신 코드 그대로 붙여서 Mac 에서 실행해봤는데 잘 동작합니다. 작성하신 코드에는 문제가 없구요. 동작하지 않는것 처럼 보이는 이유는 단지 콘솔에 로그가 안찍히기 때문인 것 같은데, 정리하면

첫번째, 로그파일을 직접 열어본다.
Mac 일 경우 아래 경로 가셔서 저 로그파일을 클릭하면 “콘솔” 프로그램이 자동으로 로그 파일을 열어줍니다.

/Users/[사용자계정]/Library/Application Support/iPhone Simulator/[iOS버전]/Applications/[앱아이디]/Documents/xxxxxxxx.log

두번째, 디버그 모드로 에뮬레이터를 실행한다.
디버그 모드로 실행하면 로그 잘 나옵니다. :smile: