Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Reading URL
Message
General information
Forum:
Visual FoxPro
Category:
Internet applications
Title:
Miscellaneous
Thread ID:
00193198
Message ID:
00193904
Views:
22
John,

I haven't had time to look at this yet, but are you sure you aren't being bitten by the semi-braindead IE cache? For me IE constantly insists on downloading stuff that most definately in the cache.

>I am trying to write a program to use AT&T's website for a reverse phone number lookup. It works to a point, but craps out because the readurl program doesn't use the cached url. Rick Strahl had given me a pointer about setting the INTERNET_FLAG_RELOAD constant, but I can't find that message and don't know what the value of it should be. I am posting the code and hope maybe someone else can get it to work. You can run the program by issuing "do phonelu with '9015765500'
>
>
>* phonelookup.prg
>* John Harvey	3/2/99
>* john.harvey@worldnet.att.net
>*
>* for testing you can run this program with - DO PHONELU WITH '9015455500'
>* this should give you a listing for the Shelby County Sheriff's Office
>* and other local law enforcement offices.
>
>parameters lcphone
>PUBLIC OIE,MYHTML
>IF type('oie.document.url')<>'O'
>	OIE=createobject('internetexplorer.application')
>ENDIF
>set safe off
>OIE.navigate('http://www.anywho.com/telq.html')
>* rudimentary delay
>WAIT WINDOW "Loading phone Search . . . . " nowait
>start=datetime()
>do while type('oie.document.forms(0).tel')='U' or (datetime()-start)<10
>enddo
>if type('oie.document.forms(0).tel')='U'
> rele oie,myhtml
> ? "Unable to Connect"
> return
>endif
>myform = oie.document.forms(0)
>myform.tel.value=lcphone
>myform.submit()
>oie.visible= .t.
>suspend
>* You should get a return on a phone number
>* check for an object existence that you expect in the return page or
>* put in a timeout of some sort.
>*!*	DO WHILE OIE.DOCUMENT.URL<>' '
>*!*	ENDDO
>* For testing purposes put in a wait.
>WAIT WINDOW "Processing . . . . " timeout 6
>MYHTML=readurl(OIE.document.url)
>if file('c:\x.htm')
> erase c:\x.htm
>endif
>STRTOFILE(MYHTML,'c:\x.htm')
>OIE.navigate('c:\x.htm')
>OIE.VISIBLE=.T.
>
>PROCEDURE readurl
>* Purloined from David Frankenbach's web page 11/20/98.
>* readurl.prg 06-Mar-98* 06-Mar-98 pulled from Q174524 on March 98 Technet CD
>* 06-Mar-98 bug fixed about the length of the sReadBuffer
>*Note that Microsoft Internet Explorer must be installed on the computer.
>* passed: URLName, in the form "http://www.microsoft.com"*
>* returns: the content of the URL** usage:*
>*  uWebContent = ReadURL( "http://www.microsoft.com" )
>*  uWebContent = ReadURL( "http://www.SomeSite.com/SomeJPG.jpg" )** notes:
>* 1 - IE does not need to be running to use this, but must be installed,
>* as the program uses an option that gets information from the registry
>LPARAMETERS pcUrlName
>
>DECLARE INTEGER InternetOpen IN wininet.DLL STRING sAgent, ;
>	INTEGER lAccessType, STRING sProxyName, ;
>	STRING sProxyBypass, INTEGER lFlags
>
>DECLARE INTEGER InternetOpenUrl IN wininet.DLL ;
>	INTEGER hInternetSession, STRING sUrl, STRING sHeaders,;
>	INTEGER lHeadersLength, INTEGER lFlags, INTEGER lContext
>
>DECLARE INTEGER InternetReadFile IN wininet.DLL INTEGER hfile, ;
>	STRING @sBuffer, INTEGER lNumberofBytesToRead, INTEGER @lBytesRead
>
>DECLARE short InternetCloseHandle IN wininet.DLL INTEGER hInst
>
>#DEFINE INTERNET_OPEN_TYPE_PRECONFIG 0
>#DEFINE INTERNET_OPEN_TYPE_DIRECT 1
>#DEFINE INTERNET_OPEN_TYPE_PROXY 3
>#DEFINE SYNCHRONOUS 0
>#DEFINE INTERNET_FLAG_RELOAD 2147483648
>#DEFINE CR CHR(13)
>LOCAL lsAgent, lhInternetSession, lhUrlFile, llOk, lnOk, lcRetVal, lcReadBuffer, lnBytesRead
>* what application is using Internet services?
>lsAgent = "VPF 5.0"
>lhInternetSession = InternetOpen( lsAgent, INTERNET_OPEN_TYPE_PRECONFIG, ;
>	'', '', SYNCHRONOUS)
>* debugging line - uncomment to see session handle
>* WAIT WINDOW "Internet session handle: " + LTRIM(STR(hInternetSession))
>IF lhInternetSession = 0
>	WAIT WINDOW "Internet session cannot be established" TIME 2
>	RETURN .null.
>ENDIF
>lhUrlFile = InternetOpenUrl( lhInternetSession, pcUrlName, '', 0, ;
>	INTERNET_FLAG_RELOAD, 0)
>* debugging line - uncomment to see URL handle
>* WAIT WINDOW "URL Handle: " + LTRIM(STR(hUrlFile))
>IF lhUrlFile = 0
>	WAIT WINDOW "URL cannot be opened"
>	RETURN .null.
>ENDIF
>lcRetVal = ""
>llOk = .t.
>DO WHILE llOk
>* set aside a big buffer
>	lsReadBuffer = SPACE(32767)
>	lnBytesRead = 0
>	lnOk = InternetReadFile( lhUrlFile, @lsReadBuffer, LEN(lsReadBuffer), @lnBytesRead)
>	IF ( lnBytesRead > 0 )
>		lcRetVal = lcRetVal + left( lsReadBuffer, lnBytesRead )
>	ENDIF
>* error trap - either a read failure or read past eof()
>	llOk = ( lnOk = 1 ) and ( lnBytesRead > 0 )
>ENDDO
>* close all the handles we opened
>InternetCloseHandle( lhUrlFile )
>InternetCloseHandle( lhInternetSession )
>* return the URL contents
>RETURN lcRetVal
>
>
>
df (was a 10 time MVP)

df FoxPro website
FoxPro Wiki site online, editable knowledgebase
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform