HTTPRequest

Hallo Experten,

ich muss mir über folgendes Skript eine HTML-Seite herunterladen.
Der Quellcode:

Option Explicit

Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal lpszCallerName As String, ByVal dwAccessType As Long, ByVal lpszProxyName As String, ByVal lpszProxyBypass As String, ByVal dwFlags As Long) As Long
Private Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" (ByVal hInternetSession As Long, ByVal lpszServerName As String, ByVal nProxyPort As Integer, ByVal lpszUsername As String, ByVal lpszPassword As String, ByVal dwService As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long
Private Declare Function InternetReadFile Lib "wininet.dll" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer
Private Declare Function HttpOpenRequest Lib "wininet.dll" Alias "HttpOpenRequestA" (ByVal hInternetSession As Long, ByVal lpszVerb As String, ByVal lpszObjectName As String, ByVal lpszVersion As String, ByVal lpszReferer As String, ByVal lpszAcceptTypes As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long
Private Declare Function HttpSendRequest Lib "wininet.dll" Alias "HttpSendRequestA" (ByVal hHttpRequest As Long, ByVal sHeaders As String, ByVal lHeadersLength As Long, ByVal sOptional As String, ByVal lOptionalLength As Long) As Boolean
Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInternetHandle As Long) As Boolean
Private Declare Function HttpAddRequestHeaders Lib "wininet.dll" Alias "HttpAddRequestHeadersA" (ByVal hHttpRequest As Long, ByVal sHeaders As String, ByVal lHeadersLength As Long, ByVal lModifiers As Long) As Integer

Const INTERNET\_FLAG\_RELOAD = &H80000000
Const HTTP\_ADDREQ\_FLAG\_ADD = &H20000000
Const HTTP\_ADDREQ\_FLAG\_REPLACE = &H80000000

Sub searchDoc()
 Dim domain As String
 Dim script As String
 Dim parameters As String
 domain = "http://web2.w3logistics.com"
 script = "/infopool/plz/index.php"
 parameters = "plzart=3&w3l\_lang=de&oort=&ostr=&plzartb=3&plz=61267&go=+Go%21"
 'MsgBox domain & script & parameters
 Debug.Print PostInfo(domain, script, parameters)
End Sub

 

Public Function PostInfo(Server As String, script As String, PostData As String) As String
 Dim hInternetOpen As Long
 Dim hInternetConnect As Long
 Dim hHttpOpenRequest As Long
 Dim bRet As Boolean
 Dim bDoLoop As Boolean
 Dim sReadBuffer As String \* 4096
 Dim lNumberOfBytesRead As Long
 Dim sBuffer As String
 Dim sHeader As String
 Dim lPostDataLen As Long

 hInternetOpen = 0
 hInternetConnect = 0
 hHttpOpenRequest = 0

 'Use registry access settings.
 Const INTERNET\_OPEN\_TYPE\_PRECONFIG = 0
 hInternetOpen = InternetOpen("MyBrowser", INTERNET\_OPEN\_TYPE\_PRECONFIG, vbNullString, vbNullString, 0)
 If hInternetOpen 0 Then
 'Type of service to access.
 Const INTERNET\_SERVICE\_HTTP = 3
 Const INTERNET\_DEFAULT\_HTTP\_PORT = 80
 'Change the server to your server name
 hInternetConnect = InternetConnect(hInternetOpen, Server, INTERNET\_DEFAULT\_HTTP\_PORT, vbNullString, "HTTP/1.0", INTERNET\_SERVICE\_HTTP, 0, 0)

 If hInternetConnect 0 Then
 'Brings the data across the wire even if it locally cached.
 hHttpOpenRequest = HttpOpenRequest(hInternetConnect, "POST", script, "HTTP/1.1", vbNullString, 0, INTERNET\_FLAG\_RELOAD, 0)
 If hHttpOpenRequest 0 Then
 sHeader = "Content-Type: application/x-www-form-urlencoded"
 lPostDataLen = Len(PostData)
 bRet = HttpSendRequest(hHttpOpenRequest, sHeader, Len(sHeader), PostData, lPostDataLen)
 bDoLoop = True
 Do While bDoLoop
 sReadBuffer = vbNullString
 bDoLoop = InternetReadFile(hHttpOpenRequest, sReadBuffer, Len(sReadBuffer), lNumberOfBytesRead)
 sBuffer = sBuffer & Left(sReadBuffer, lNumberOfBytesRead)
 If Not CBool(lNumberOfBytesRead) Then bDoLoop = False
 Loop

 PostInfo = sBuffer
 bRet = InternetCloseHandle(hHttpOpenRequest)
 End If
 bRet = InternetCloseHandle(hInternetConnect)
 End If
 bRet = InternetCloseHandle(hInternetOpen)
 End If
 End Function

Leider scheitert das Programm an der Stelle

bRet = HttpSendRequest(hHttpOpenRequest, sHeader, Len(sHeader), PostData, lPostDataLen)

Kann mir einer von euch sagen warum?

Wäre für ein paar Antworten dankbar.

[MOD] - Pre-Tag eingefügt.