Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
XML times out
Message
 
To
18/04/2012 11:31:28
General information
Forum:
Visual FoxPro
Category:
XML, XSD
Title:
Miscellaneous
Thread ID:
01541972
Message ID:
01541999
Views:
29
sadly many more lines decoding what is returned - I just need to find a simple way of repeating the send on a time out or giving it more time

>Actually, unless your program has many more lines than you showed, the fix is very easy.
>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)
>lcData =GetDataFromURL(url)
>Insert into WebPage (myMails) VALUES (lcData)
>
>endscan
>
>>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
Reply
Map
View

Click here to load this message in the networking platform