Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
XML times out
Message
 
To
18/04/2012 10:58:47
General information
Forum:
Visual FoxPro
Category:
XML, XSD
Title:
Miscellaneous
Thread ID:
01541972
Message ID:
01541983
Views:
39
Tore

Thanks as ever. If I develop a new system I will certainly use your code. As it is at the moment I need a quick fix to the problem - so forgive for not implementing your solution immediately

Colin

>As I understand it, you simply download data as separate xml strings, is that correct? If so, you can use this function which I call GetDataFromURL. To use it
>lcString = GetDataFromURL(lcURL)
>
>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" Timeout 5
>   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
>
>
>>I am trying to retrieve data from Citylink Couriers web site - most of the time the information is returned quickly but every now and then the objHTTP.Send() times out with an error
>>
>>Any idea of the best way to give the system more time or to force a repeat search on the error
>>
>>select logix
>>scan
>>partaa=ALLTRIM(logix.cityref)
>>parta="http://www.city-link.co.uk/pod/xmltracking.php?jobno="
>>partb="&custno=318951&x1=AAA11AAA07KRFAHWS7654321AAAAAAAAAAAA="
>>url=parta+partaa+partb
>>
>>url=STRTRAN(url,'"',"")
>>url=ALLTRIM(url)
>>
>>objHTTP = CreateObject("MSXML2.XMLHTTP.4.0")
>>objHTTP.Open("GET", url,.f.)
>>objHTTP.Send()
>>Insert into WebPage (myMails) VALUES (objHTTP.ResponseText)
>>objHTTP = null
>>RELEASE objHTTP
>>etc
>>
>>endscan
Specialist in Advertising, Marketing, especially Direct Marketing

I run courses in Business Management and Marketing
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform