Я использовал tcpclient для подключения к потоковому API и по какой-то причине он не работает с ошибкой 301 (что-то не так с моими учетными данными).Однако, когда я использую httpwebrequest к тому же API и использую те же учетные данные, и это работает.Я пытаюсь понять, что я делаю неправильно:
Соединение TCPclient:
Try
Dim bufferread(defaultSize) As Byte
url = "xxxxxxxxx.com"
Dim tclient As TcpClient = New TcpClient(url, "80")
' use a network stream to download the tcpClient stream
nstream = tclient.GetStream()
' check if we can write to the stream to add the relevant headers and credentials
If nstream.CanWrite Then
Dim headers As String
headers = "GET " & addedUrl & " HTTP/1.0" & Chr(13) & "" & Chr(10)
headers &= "Authorization: Basic " & userNamePassword & Chr(13) & "" & Chr(10)
headers &= Chr(13) & "" & Chr(10)
Dim sendBytes As [Byte]() = Encoding.UTF8.GetBytes(headers)
nstream.Write(sendBytes, 0, sendBytes.Length)
If nstream.CanRead Then
Dim timestamp As DateTime = DateTime.Now
Dim data As String
numbytesRead = 0
' start reading from the stream
Do....
httpwebrequest:
While Not responseData = Nothing
Try
' setup the webrequest and headers to send
url = "https://xxxxxxxxxxxx.com" & addedUrl
If Not parsingTools.refreshDate = Nothing Then
url = parsingTools.refreshDate
End If
Dim poststring As String = ""
webrequest = TryCast(System.Net.WebRequest.Create(url), HttpWebRequest)
webrequest.Method = "GET"
webrequest.UserAgent = "xxxxxxxxxx"
webrequest.Referer = "xxxxxxxxxxxxx"
webrequest.Timeout = 20000
webrequest.KeepAlive = True
webrequest.Credentials = New System.Net.NetworkCredential ("xxxxxxxxxxxxx", "yyyyyyyyyyyyyy")
'get the responsestream
responseStream = webrequest.GetResponse().GetResponseStream()
'check if stream is readable
If responseStream.CanRead Then