2012-01-11 9 views
2

が、私はこのサービスの実行の30秒FlexのHTTPServiceのタイムアウトに

<s:HTTPService id="svcList" url="http://localhost/index.php" method="GET" result="svcList_resultHandler(event)" fault="svcList_faultHandler(event)" requestTimeout="300"> 
    <s:request xmlns=""> 
     <mod>module</mod> 
     <op>operation</op> 
    </s:request> 
</s:HTTPService> 

後にエラーを取得しています。この操作はので、私は120秒にPHPの最大実行時間を変更し通常より長くかかります。

スクリプトがhttp://localhost/index.php?mod=module&op=operation

すなわちブラウザから要求されたとき、私はすでに答えを障害イベントオブジェクトをチェックしましたが正しく実行され、faultDetails Error: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032: Stream Error. URL: http://localhost/index.php" errorID=2032]. URL: http://localhost/index.php

でこれを見つけるリクエストの実行時間の制限があります?

編集:既にrequetTimeoutを使用してください。

おかげ

答えて

9

私の仕事環境で(Flex SDK 4.1 - AIR 2.6)を使用すると、単にrequestTimeout="xx"を使用しても動作しません。理由はわかりません。

しかし、非常にグローバルなオブジェクトを設定すると、URLRequestDefaultsプロパティidleTimeoutが必要に応じて動作します。

私のprobleの解決策は、アプリケーションの上部にあるこの設定です。

import flash.net.URLRequestDefaults; 

URLRequestDefaults.idleTimeout = 120000; //note this value represents milliseconds (120 secs) 

私はこれが誰かを助けることができると信じています。

+0

生命救助者、フレックス4と私のためにrequestTimeoutは全く仕事ではありませんでした。 – Savid

+0

本当に人生!!!! – Dave

0

は、HTTPサービスオブジェクトのうち、要求時間を設定することができ、これは、スズに言うけど、あなたはもっとここに知りたい場合は、言語リファレンスのリンクであるだろう。

ここで

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/rpc/http/HTTPService.html#requestTimeout

それは120秒の時間であなたのコードスニペットに外を見ることができる方法の例です:

また
<s:HTTPService id="svcList" requestTimeout="120" url="http://localhost/index.php" method="GET" result="svcList_resultHandler(event)" fault="svcList_faultHandler(event)"> 
    <s:request xmlns=""> 
    <mod>module</mod> 
    <op>operation</op> 
    </s:request> 
</s:HTTPService> 

WORこの属性をゼロ以下に設定すると、要求は(言語参照に従って)タイムアウトしないことに注意してください。

+0

この 'requestTimeout'プロパティは、ライブドキュメントで説明されているように機能しません。私は前にそれを試して、結果はまったく同じで、全く変化はありません。 – gustyaquino

+0

タイムアウト属性は、ブラウザ固有のもので、Chrome、Firefox、IEの動作がすべて異なっているようです。私は比較テストを行っていませんが、特にあなたのために動作するブラウザを選ぶことができれば、それは価値があります(もちろん、それは夢のようです!)。 – Jeremy

1

ただし、requestTimeoutが機能しないと思われるようですが、実際には...初めて。

は、第一要求した後、のrequestTimeoutは、あなたがタイムアウトを変更する必要がある場合は、あなたがそこにそれを行うことになるでしょう

HTTPService.channelSet.currentChannel.requestTimeout 

に設定されています。

特定の違反コードを確認するには、AbstractOperation.getDirectChannelSet()を参照してください。 _directChannelSetは、一度だけインスタンス化され、そしてその上のrequestTimeoutのみ作成時に設定されているので、あなたは、HTTPServiceの上のrequestTimeoutを変更しても、それが反映されません

private static var _directChannelSet:ChannelSet; 

:でも、HTTPServiceのの異なるインスタンスのために、それはから引きます要求に含まれます。

関連する問題