Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
XML times out
Message
From
18/04/2012 11:31:28
 
General information
Forum:
Visual FoxPro
Category:
XML, XSD
Title:
Miscellaneous
Thread ID:
01541972
Message ID:
01541992
Views:
34
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
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform