bastel grad eine eigene webclass.
nur eine frage auf die ich bisher keine antwort gefunden habe:
so wie jetzt läuft alles bestens, wenn ich aber das komentierte anstelle von den 3 zeilen da drüber benutze, dann braucht die funktion an der gekennzeichneten stelle seeeehr lange (~10 sekunden).
wieso?
nur eine frage auf die ich bisher keine antwort gefunden habe:
so wie jetzt läuft alles bestens, wenn ich aber das komentierte anstelle von den 3 zeilen da drüber benutze, dann braucht die funktion an der gekennzeichneten stelle seeeehr lange (~10 sekunden).
wieso?
Quellcode
- Public Function SendGet(ByVal Path As String, Optional ByVal Port As Integer = 80) As String()
- SendGet = New String() {}
- Try
- Dim Host As String = New Uri(Path).Host
- Dim MyTcp = New TcpClient(Host, Port)
- If MyTcp.Connected Then
- Dim nStream As NetworkStream = MyTcp.GetStream()
- Dim sWriter As New StreamWriter(nStream)
- Dim sReader As New StreamReader(nStream)
- Dim regexLength As String = "Content-Length: (\d+)"
- Dim ReadContent As Boolean = False
- Dim ContentLength As Integer = 0
- sWriter.WriteLine("GET " & Path & " HTTP/1.1")
- sWriter.WriteLine("Host: " & Host)
- sWriter.WriteLine("")
- sWriter.Flush()
- Dim Response As String = ""
- Do
- Response = sReader.ReadLine()
- If (Regex.IsMatch(Response, regexLength)) Then
- Dim RegexMatch As Match = Regex.Match(Response, regexLength)
- ContentLength = CInt(RegexMatch.Groups(1).ToString)
- End If
- If Response = "" Then
- Exit Do
- End If
- Application.DoEvents()
- Loop Until Response Is Nothing
- Dim bytes(ContentLength) As Char
- sReader.Read(bytes, 0, ContentLength)
- SendGet = CStr(bytes).Split(CChar(vbCrLf))
- 'Dim ReturnStrings As new List(Of String)
- 'Do
- ' 'HIER STOCKT DAS PROGRAMM
- ' Response = sReader.ReadLine()
- ' ReturnStrings.Add(Response)
- 'Loop Until Response Is Nothing
- 'SendGet = ReturnStrings.ToArray()
- nStream.Close()
- sWriter.Close()
- sReader.Close()
- MyTcp.Close()
- End If
- Catch ex As Exception
- End Try
- End Function