In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Limitar tiempo de espera

Foro público de Xailer en español
User avatar
ramonzea
Posts: 63
Joined: Tue Sep 15, 2015 6:42 am
Location: México
Contact:

Limitar tiempo de espera

Postby ramonzea » Sun Apr 14, 2019 7:48 pm

Estoy haciendo una conexión:
oHttp := CreateObject( "MSXML2.XMLHTTP.6.0" )
oHttp:Open( "POST", cURL, .f.)

Todo bien, pero cuando la URL está caída se queda colgada, y quiero limitar el tiempo de espera, pero no he logrado hallar la ayuda para hacer dicho límite.

Gracias de antemano.
Saludos.
User avatar
emeasoft
Posts: 1051
Joined: Wed Apr 01, 2009 4:12 pm
Location: emeasoft
Contact:

Re: Limitar tiempo de espera

Postby emeasoft » Mon Apr 15, 2019 1:22 pm

[Spanish by Google:]
Hola ramon

El objeto no tiene una propiedad de tiempo de espera.

Una idea es usar un DO WHILE.

P.ej.:

Code: Select all

  // oHttp:readyState = 4 mean it is done
  nTimeout := 4 // in seconds
  nSeconds := Seconds()
  DO WHILE oHttp:readyState <> 4
    IF Seconds() - nSeconds > nTimeout
      EXIT
    ENDIF
    Sleep(1000)
  END


Fuente:
https://docs.microsoft.com/en-us/previo ... 3dvs.85%29

Espero eso ayude.

Saludos,
Juliano
User avatar
ramonzea
Posts: 63
Joined: Tue Sep 15, 2015 6:42 am
Location: México
Contact:

Re: Limitar tiempo de espera

Postby ramonzea » Tue Apr 16, 2019 12:26 pm

Gracias, si eso hice pero cuando es un webservice siempre regresa 1, y hasta hacer un SEND. pasa a 4 el readystate.

Saludos
User avatar
emeasoft
Posts: 1051
Joined: Wed Apr 01, 2009 4:12 pm
Location: emeasoft
Contact:

Re: Limitar tiempo de espera

Postby emeasoft » Wed Apr 17, 2019 3:13 pm

Hola ramon

Eche un vistazo al parámetro "varAsync" en la documentación del método abierto. Creo que si lo configura como falso, puede usar el "onreadystatechange" para controlar el "timeout" allí.

https://docs.microsoft.com/en-us/previo ... 3dvs.85%29

Eche un vistazo a los comentarios y al final de la página.

Saludos,
Juliano

Return to “Spanish”