2012-02-01 9 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のトレースは既に失敗しています(値を返しません)。

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(または任意の他のタイムサーバ)は、URLRequestまたはHTTPServiceのを使用することはできませんので、通信ではなく、HTTPのためのNTPプロトコルを使用します。 ActionScriptでのNTPクライアントの実装についてわかりません。あなた自身で行う必要があるかもしれません。

お客様のニーズに応じて、Yahoo WebServicesのような「かなり正確な」時間を提供するWebサービスを使用することができます。これはHTTPを経由するので、FlexではURLRequestまたはHTTPServiceを使用できます。

+0

乾杯、ヤフーは絶対に十分です(私はそれがうまくいくので、日まで正確さが必要です)。私はそれを試してみましょう! – AlBirdie

+0

申し訳ありませんが、これまで問題なく動作していますが、構文解析以外の問題が発生しているようです。 WebServicesページに表示されたようなResult XML全体を取得します。 (私のHTTPServiceのresultFormatはe4xですが、タイムスタンプノードにアクセスすることは期待どおりに動作しません。私はこの問題を説明するために最初の投稿を編集しました。 – AlBirdie

関連する問題