hier die geänderte funktion für Proxy
Public Function OpenUrlWithData( _
ByVal URL As String, _
Optional ByRef Data As String, _
Optional ByVal DataTyp As String, _
Optional ByRef Referer As String, _
Optional ByVal OpenType As InternetOpenType = IOTPreconfig, _
Optional ByVal Port As Integer = 80, _
Optional ByVal UserName As String, _
Optional ByVal Password As String, _
Optional ByVal ProxyAddr As String = vbNullString
) As String
Dim Server As String
Dim Path As String
Dim hOpen As Long
Dim hConnect As Long
Dim hRequest As Long
Dim Buffer As String * 2048
Dim Bytes As Long
Dim I As Long, j As Long
LastURL = URL
'Server und Pfad bestimmen:
URL = Trim$(URL)
If LCase$(Left$(URL, 8)) = "https://" And Port = 80 Then Port = _
INTERNET_DEFAULT_HTTPS_PORT
j = InStr(URL, "://")
If j > 0 Then URL = Mid$(URL, j + 3)
I = InStr(URL, "/")
If I > 0 Then
'Server und Pfad trennen:
Server = Left$(URL, I - 1)
Path = Mid$(URL, I)
Else
'Root-Pfad verwenden:
Server = URL
Path = "/"
End If
Dim lgFlags As Long
Dim dwFlags As Long, dwBuffLen As Long: dwBuffLen = 4 ' Len(dwFlags)
If (Port = INTERNET_DEFAULT_HTTPS_PORT) Then
lgFlags = INTERNET_FLAG_SECURE Or _
INTERNET_FLAG_IGNORE_CERT_CN_INVALID
Else
lgFlags = INTERNET_FLAG_RELOAD
End If
'Internet-Handles öffnen:
hOpen = InternetOpenA(INET_UserAgent, OpenType, ProxyAddr , vbNullString, _
0)
hConnect = InternetConnectA(hOpen, Server, Port, UserName, Password, _
INTERNET_SERVICE_HTTP, 0, 0)
hRequest = HttpOpenRequestA(hConnect, DataTyp, Path, HTTP_VERSION, _
vbNullString, 0, lgFlags, 0)
If (Port = INTERNET_DEFAULT_HTTPS_PORT) Then
Call InternetQueryOption(hRequest, INTERNET_OPTION_SECURITY_FLAGS, _
dwFlags, dwBuffLen)
dwFlags = dwFlags Or SECURITY_FLAG_IGNORE_UNKNOWN_CA
Call InternetSetOption(hRequest, INTERNET_OPTION_SECURITY_FLAGS, _
dwFlags, dwBuffLen)
End If
'Header (mitsamt Daten) senden:
HttpAddRequestHeadersA _
hRequest, INET_ContentType_BINARY, Len(INET_ContentType_BINARY), _
HTTP_ADDREQ_FLAG_REPLACE Or HTTP_ADDREQ_FLAG_ADD
If Referer = "" Then HttpAddRequestHeadersA hRequest, "Referer: " & Referer _
& vbCrLf, Len("Referer: " & Referer & vbCrLf), HTTP_ADDREQ_FLAG_REPLACE _
Or HTTP_ADDREQ_FLAG_ADD
HttpSendRequestA hRequest, vbNullString, 0, Data, Len(Data)
'Ergebnis-Daten sammeln:
Do
InternetReadFile hRequest, Buffer, Len(Buffer), Bytes
If Bytes = 0 Then Exit Do
OpenUrlWithData = OpenUrlWithData & Left$(Buffer, Bytes)
Loop
'Internet-Handles schließen:
InternetCloseHandle hRequest
InternetCloseHandle hConnect
InternetCloseHandle hOpen
End Function
-------------------------------------------
Follow the White Rabbit !!! |