2012-02-01 2 views
0

내 Flex 모바일 애플리케이션에서 time.nist.gov와 같은 인터넷 시간 서비스가 제공하는 시간에 어떻게 액세스합니까?Flex 모바일 요청 time.nist.gov

URLRequest 또는 HTTPService를 통해이를 수행 할 수있는 방법이 있습니까?

좋아, 여기 간단한 HTTPService로 Yahoo WebServices를 호출합니다.

<s:HTTPService id="serverTime" url="http://developer.yahooapis.com/TimeService/V1/getTime?appid=myID" result="resultHandler(event)" resultFormat="e4x"/> 

내 resultHandler에서 Timestamp의 추적이 이미 실패 (값을 반환하지 않음)합니다. 당신이하는 URLRequest 또는 HTTPService를 사용할 수 없습니다 있도록

private function resultHandler(event:ResultEvent):void { 
      // this works (outputs the xml as shown on Yahoo 
      trace(event.result); 

      var xmlResult:XML = event.result as XML; 
      var timestamp:String = xmlResult.Timestamp; 

      trace("stamp" + timestamp); 
} 
+0

태그 이름을 통해 자식 노드를 지정하는 것은 HTTPService와 작동하지 않으므로 반환 형식을 XML로 변경하고 XMLNode (XMLNode (xmlNode.childNodes [ 0]). firstChild.nodeValue). – AlBirdie

+0

루트 "결과"태그를 놓친 것 같습니다. var timestamp : String = xmlResult.Result.Timestamp –

+0

그리고 더 나은 이유는 resultFormat = "object"를 사용하고 이벤트 처리기에서 타임 스탬프에 액세스하는 것입니다. event.result [ "Result"] [ "Tmestamp "] (나는 [] 대. 표기법을 선호합니다) –

답변

1

time.nist.gov (또는 다른 시간 서버), 통신,하지 HTTP에 대한 NTP 프로토콜을 사용합니다. ActionScript에서 NTP 클라이언트 구현을 모르겠습니다. 당신은 당신 자신의 것을해야 할 수도 있습니다.

필요에 따라 Yahoo WebServices과 같이 "매우 정확한"시간을 제공하는 웹 서비스를 사용할 수 있습니다. 이것은 HTTP를 거치므로 Flex에서 URLRequest 또는 HTTPService를 사용할 수 있습니다.

+0

건배 메이트, 야후는 절대적으로 충분합니다 (나는 정밀도가 있어야만 괜찮습니다.) 나는 그것을 시도 할 것이다! – AlBirdie

+0

좋아, 지금까지 문제가 발생하는 것 같습니다 구문 분석을 제외하고 잘 작동합니다. WebServices 페이지에 표시된 것과 같은 전체 Result XML을 얻는다. (내 HTTPService의 resultFormat은 e4x 임) 그러나 Timestamp 노드에 액세스하는 것이 예상대로 작동하지 않습니다. 문제를 설명하기 위해 초기 게시물을 편집했습니다. – AlBirdie