Solved

how to trap an timeout error on http posting/reply using vb6 code

Posted on 2009-06-29
3
356 Views
Last Modified: 2012-05-07
I have a section of the code of VB6 that want to do http posting and get reply from an remote asp server application.  it works fine, but I need to figure out a way to trap the "timed-out" operations in case the remote server is not responding.

I use the on error goto err label trying to do this.  but it does not works.  The vb.exe program is running in a scheduler,  when the error occurs, (it does shows the timedout error) but not trapped in the code.  but it pops up a small debug window.   (but no one is attending the terminal,  so it hangs there....)

(If I set the on error code set before XMLRespone = xmlhttp.ResponseText
 will do the trick?)

Please look the sample code I attached here, and see what I did wrong. and any suggestion
you can help to "insert/modify" my code to do this purpose.

thanks


sub main()
 
 Dim xmlhttp As WinHttp.WinHttpRequest
 Dim strArg As String
 Dim strMSG As String
 Dim StrURL As String
 Dim XMLResponse As String
 Dim strResponse As String
 dim i_str as string
 dim ch_i as integer
 
	ch_i = freefile()
	open "input_file.inp" for input as #ch_i   ' this file will contains many lines of parameter to pass
	
do while eof(ch_i) = false
        
 	Line Input #ch_i, i_str
	StrURL = "https://www.target.com/srv.asp"
     	strMSG = "?id1=HeathCheck&id2=123&id3=test" &  i_str
 	StrURL = StrURL & strMSG   ' /* make sure strlURL contains the https and the url cmd. */
    On Error GoTo err_posting
        Set xmlhttp = New WinHttp.WinHttpRequest
       
        xmlhttp.Open "POST", StrURL, False
        xmlhttp.SetRequestHeader "Host", "timeout-detecting-URL"   ' /* set label in web log */
        xmlhttp.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
        xmlhttp.Send (strMSG) 	'Submit the transaction to the server gateway
        'Wait for response
        XMLResponse = xmlhttp.ResponseText 	'Retrieve the result
        Set xmlhttp = Nothing 	'Destroy the object
	
	debug.print XMLResponse    ' display the result
 
	loop
finish:
    close ch_i
    exit sub
 
err_posting:
 
    debug.print err.description
 
    exit sub
end sub

Open in new window

0
Comment
Question by:mshox1
  • 2
3 Comments
 
LVL 20

Accepted Solution

by:
hes earned 500 total points
ID: 24749176
Try moving the on error line to just after  sub main()
It is setting that in the loop currently
0
 

Author Comment

by:mshox1
ID: 24749621
hes,

I tried that ealier,  but it does not works.  (i.e put on error outside the loop.

0
 

Author Closing Comment

by:mshox1
ID: 31598190
good , thank you
0

Featured Post

Gigs: Get Your Project Delivered by an Expert

Select from freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely and get projects done right.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Have you ever wanted to restrict the users input in a textbox to numbers, and while doing that make sure that they can't 'cheat' by pasting in non-numeric text? Of course you can do that with code you write yourself but it's tedious and error-prone …
Enums (shorthand for ‘enumerations’) are not often used by programmers but they can be quite valuable when they are.  What are they? An Enum is just a type of variable like a string or an Integer, but in this case one that you create that contains…
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…

785 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question