Browse Source

Added Timeout property to android HTTPRequest.

Mark Sibly 7 years ago
parent
commit
10b390cadf

+ 15 - 4
modules/httprequest/httprequest_android.monkey2

@@ -39,7 +39,6 @@ Enum ReadyState
 	Loading=3
 	Loading=3
 	Done=4
 	Done=4
 	Error=5
 	Error=5
-
 End
 End
 
 
 Class HttpRequest
 Class HttpRequest
@@ -83,6 +82,15 @@ Class HttpRequest
 		Return _status
 		Return _status
 	End
 	End
 	
 	
+	Property Timeout:Float()
+		
+		Return _timeout
+		
+	Setter( timeout:Float )
+		
+		_timeout=timeout
+	End
+	
 	Method Discard()
 	Method Discard()
 		
 		
 		Remove()
 		Remove()
@@ -123,8 +131,10 @@ Class HttpRequest
 		OnMainFiber( Lambda()
 		OnMainFiber( Lambda()
 
 
 			Local env:=Android_JNI_GetEnv()
 			Local env:=Android_JNI_GetEnv()
+			
+			Local timeout:=Int( _timeout * 1000 )
 		
 		
-			env.CallVoidMethod( _obj,_send,New Variant[]( text ) )
+			env.CallVoidMethod( _obj,_send,New Variant[]( text,timeout ) )
 		
 		
 		End )
 		End )
 		
 		
@@ -139,6 +149,7 @@ Class HttpRequest
 	Field _readyState:Int
 	Field _readyState:Int
 	Field _response:String
 	Field _response:String
 	Field _status:int
 	Field _status:int
+	Field _timeout:Float=10.0
 	
 	
 	Method New( peer:jobject )
 	Method New( peer:jobject )
 		_obj=peer
 		_obj=peer
@@ -225,8 +236,8 @@ Class HttpRequest
 		_open=env.GetMethodID( _class,"open","(Ljava/lang/String;Ljava/lang/String;)V" )
 		_open=env.GetMethodID( _class,"open","(Ljava/lang/String;Ljava/lang/String;)V" )
 		
 		
 		_setHeader=env.GetMethodID( _class,"setHeader","(Ljava/lang/String;Ljava/lang/String;)V" )
 		_setHeader=env.GetMethodID( _class,"setHeader","(Ljava/lang/String;Ljava/lang/String;)V" )
-	
-		_send=env.GetMethodID( _class,"send","(Ljava/lang/String;)V" )
+		
+		_send=env.GetMethodID( _class,"send","(Ljava/lang/String;I)V" )
 		
 		
 		onReadyStateChanged=OnReadyStateChanged
 		onReadyStateChanged=OnReadyStateChanged
 		
 		

+ 6 - 2
modules/httprequest/native/Monkey2HttpRequest.java

@@ -58,7 +58,7 @@ public class Monkey2HttpRequest{
 		connection.setRequestProperty( name,value );
 		connection.setRequestProperty( name,value );
 	}
 	}
 	
 	
-	void send( final String text ){
+	void send( final String text,final int timeout ){
 	
 	
 		if( readyState!=1 || busy ) return;
 		if( readyState!=1 || busy ) return;
 		
 		
@@ -67,7 +67,11 @@ public class Monkey2HttpRequest{
 		new Thread( new Runnable() {
 		new Thread( new Runnable() {
 
 
 			public void run() {
 			public void run() {
-
+			
+				connection.setConnectTimeout( timeout );
+		
+				connection.setReadTimeout( timeout );
+				
 				try {
 				try {
 				
 				
 					if( text!=null && text.length()!=0 ){
 					if( text!=null && text.length()!=0 ){