Advertisement
Guest User

Untitled

a guest
May 29th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Public Function getWebPage(AccessMode As MYURLARRAY, FollowRedirection As Boolean, _
  2.   IncludeGet As Boolean) As String
  3. Dim botInternetOpen As Long, botInternetConnect As Long, botOpenRequest As Long
  4. Dim botPageValid As Boolean, DomainName As String, PortMode As Long
  5. Dim InternetUserName As String, InternetPassWord As String, UrlString As String
  6. Dim FetchPage As String, FetchFlags As Long, FetchMode As String
  7. Dim FetchPost As String, lenFetchPost As Long, webUserAgent As String
  8. Dim WebPage As String * 1024, lenWebPage As Long, idxWebPage As Long
  9. Dim Whack() As String, WiDx As Long
  10. Dim InternetError As Long, botPageCode As Long, webResults As String
  11.  
  12.   On Error GoTo InternetWhoops
  13.   BotVariables.Item(fbInternetResults) = ""
  14.   If axInternetTimer Then Err.Raise 1009
  15.   UrlString = BotScript.Http.serverName & BotScript.Http.serverPath
  16.   If UrlString = "" Then Err.Raise 1000
  17.   Whack() = Split(UrlString, "/")
  18.   If InStr(1, Whack(0), "http", vbTextCompare) <> 1 Then Err.Raise 1001
  19.   If InStr(Whack(2), ".") = 0 Then Err.Raise 1002
  20.   If BotScript.Http.botUserAgent = "" Then Err.Raise 1003
  21.   webUserAgent = VersionData & " : " & BotScript.Http.botUserAgent
  22.   PortMode = IIf(LCase$(Whack(0)) = "http:", _
  23.     INTERNET_DEFAULT_HTTP_PORT, INTERNET_DEFAULT_HTTPS_PORT)
  24.   DomainName = Whack(2)
  25.   FetchPage = ""
  26.   For WiDx = 3 To UBound(Whack())
  27.     FetchPage = FetchPage & "/" & Whack(WiDx)
  28.   Next WiDx
  29.   InternetUserName = IIf(BotScript.Http.serverUser = "", _
  30.     vbNullString, BotScript.Http.serverUser)
  31.   InternetPassWord = IIf(BotScript.Http.serverPass = "", _
  32.     vbNullString, BotScript.Http.serverPass)
  33.  
  34.   lenWebPage = Len(WebPage)
  35.   botInternetOpen = InternetOpen(webUserAgent, _
  36.     INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
  37.   InternetError = GetLastError()
  38.   If botInternetOpen = 0 Then Err.Raise 1011
  39.  
  40.   botInternetConnect = InternetConnect(botInternetOpen, DomainName, PortMode, _
  41.     InternetUserName, InternetPassWord, INTERNET_SERVICE_HTTP, 0, 0)
  42.   InternetError = GetLastError()
  43.   If botInternetConnect = 0 Then Err.Raise 1012
  44.  
  45.   FetchPage = IIf(IncludeGet, combineUrlMembers(FetchPage, urlGet), FetchPage)
  46.   FetchFlags = INTERNET_FLAG_RELOAD Or IIf(FollowRedirection, _
  47.     0, INTERNET_FLAG_NO_AUTO_REDIRECT)
  48.   FetchMode = IIf(AccessMode = urlPost, "POST", "GET")
  49.   botOpenRequest = HttpOpenRequest(botInternetConnect, FetchMode, FetchPage, _
  50.     "HTTP/1.0", vbNullString, 0, FetchFlags, 0)
  51.   InternetError = GetLastError()
  52.   If botOpenRequest = 0 Then Err.Raise 1013
  53.  
  54.   lenWebPage = Len(WebPage)
  55.   If AccessMode = urlPost Then
  56.     FetchPost = combineUrlMembers("", urlPost)
  57.     lenFetchPost = Len(FetchPost)
  58.   Else
  59.     FetchPost = vbNullString
  60.     lenFetchPost = 0
  61.   End If
  62.   botPageValid = HttpSendRequest(botOpenRequest, vbNullString, 0, _
  63.     FetchPost, lenFetchPost)
  64.   InternetError = GetLastError()
  65.   If botPageValid = False Then Err.Raise 1014
  66.   idxWebPage = lenWebPage
  67.   botPageValid = HttpQueryInfo(botOpenRequest, HTTP_QUERY_STATUS_CODE, _
  68.     ByVal WebPage, idxWebPage, 0)
  69.   InternetError = GetLastError()
  70.   If botPageValid = False Then Err.Raise 1015
  71.  
  72.   botPageCode = Val(WebPage)
  73.   Select Case botPageCode
  74.     Case 200
  75.       BotVariables.Item(fbInternetResults) = "200 - Successful Page Fetch"
  76.       Do
  77.         WebPage = String$(lenWebPage, Chr$(0))
  78.         botPageValid = InternetReadFile(botOpenRequest, WebPage, _
  79.           lenWebPage, idxWebPage)
  80.         If (botPageValid = False) Or (idxWebPage = 0) Then Exit Do
  81.         webResults = webResults & Left$(WebPage, idxWebPage)
  82.         DoEvents ' to prevent program from seeming to be unresponsive
  83.      Loop
  84.       webResults = stripHtmlEntities(webResults)
  85.     Case 302
  86.       BotVariables.Item(fbInternetResults) = "302 - Got Redirection"
  87.       idxWebPage = lenWebPage
  88.       WebPage = String$(lenWebPage, Chr$(0))
  89.       botPageValid = HttpQueryInfo(botOpenRequest, HTTP_QUERY_LOCATION, _
  90.         ByVal WebPage, idxWebPage, 0)
  91.       If lenWebPage > 0 Then webResults = Left$(WebPage, idxWebPage)
  92.     Case Else
  93.       Err.Raise 1004
  94.   End Select
  95.  
  96. InternetWhoops:
  97.   InternetCloseHandle botOpenRequest
  98.   InternetCloseHandle botInternetConnect
  99.   InternetCloseHandle botInternetOpen
  100.   If Err.number > 0 Then
  101.     If Err.number < 1000 Then
  102.       PumpInternalMessage "I-Net Failure: " _
  103.         & Err.number & "-" & Err.Description
  104.     Else
  105.       If Err.number < 1010 Then
  106.         Select Case Err.number
  107.           Case 1000
  108.             BotVariables.Item(fbInternetResults) = _
  109.               "000 - Internet Access Failure, no server defined"
  110.           Case 1001
  111.             BotVariables.Item(fbInternetResults) = "001 - Invalid protocol, " _
  112.               & Whack(0) & " not supported"
  113.           Case 1002
  114.             BotVariables.Item(fbInternetResults) = "002 - Invalid domain name, " _
  115.               & Whack(2) & " does not appear to be valid"
  116.           Case 1003
  117.             BotVariables.Item(fbInternetResults) = "007 - Invalid botname"
  118.           Case 1004
  119.             BotVariables.Item(fbInternetResults) = botPageCode _
  120.               & " - Got unhandled code"
  121.           Case 1009
  122.             BotVariables.Item(fbInternetResults) = "444 - Access timeout failure"
  123.           Case Else
  124.             BotVariables.Item(fbInternetResults) = "990 - unknown error code"
  125.         End Select
  126.         PumpInternalMessage "I-Net Failure: " _
  127.           & Err.number & "-" & BotVariables.Item(fbInternetResults)
  128.       Else
  129.         WebPage = String$(0, lenWebPage)
  130.         FormatMessage FORMAT_MESSAGE_FROM_SYSTEM, ByVal 0&, InternetError, _
  131.           LANG_NEUTRAL, WebPage, 200, ByVal 0&
  132.         PumpInternalMessage "I-Net Failure: " _
  133.           & Err.number & "-" & Left$(WebPage, InStr(WebPage, Chr$(0)) - 1)
  134.         BotVariables.Item(fbInternetResults) = _
  135.           "999 - Read connection log for error message"
  136.       End If
  137.     End If
  138.     getWebPage = ""
  139.   Else
  140.     getWebPage = webResults
  141.     axInternetTimer = True
  142.     addAutomation axInternetInhibit, axInternetTimeOut
  143.   End If
  144. End Function
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement