сервер, с которым я хочу работать с ним, возвращает 302 Found
с несколькими байтами тела здесь является необработанным
HTTP/1.1 302 Found
Server: unknown
Date: Sun, 29 Jun 2014 20:12:14 GMT
Content-Type: text/html; charset=utf-8
Connection: close
P3P: CP="CAO PSA OUR"
x-powered-by:
Set-Cookie: session=604d0bdba04eb54793ec2f3c98b2a37e; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Location: www.mysite.com/login.php?session=604d0bdba04eb54793ec2f3c98b2a37e
Vary: Accept-Encoding
Content-Length: 18163
этот кусок тела я хочу отменить его от загрузки:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
///////body bytes about 18kb///////
</html>
вот мой код, обрабатывающий ответ, используя асинхронный запрос:
Dim request As HttpWebRequest = CType(asynchronousResult.AsyncState, HttpWebRequest)
Dim BYTES_TO_READ As Integer = 0
Dim buffer = New Byte(BYTES_TO_READ - 1) {}
Using response As HttpWebResponse = CType(request.EndGetResponse(asynchronousResult), HttpWebResponse)
Using sm As Stream = response.GetResponseStream()
Dim totalBytesRead As Integer = 0
Dim bytesRead As Integer
Do
bytesRead = sm.Read(buffer, totalBytesRead, BYTES_TO_READ - totalBytesRead)
totalBytesRead += bytesRead
Loop While totalBytesRead < BYTES_TO_READ
request.Abort()
response.Close()
sm.Close()
End Using
End Using
Dim s = Encoding.Default.GetString(buffer)
Console.WriteLine(s)
Catch ex As WebException
Exit Sub
End Try
выход равен нулю, но ответ полностью загружен! и я хочу пропустить это, я хочу только заголовки и отменить весь остальной response stream
поэтому есть ли способ читать только заголовки и отменить все оставшиеся байты
Чтобы прочитать заголовки, вы должны проверить коллекцию response.Headers, не вызывая GetResponseStream. Вы пробовали это, все тело загружено в любом случае?
Еще одна вещь, которую вы можете попробовать - это запросить данные, используя запрос "HEAD". Он специально предназначен для извлечения только заголовков, всегда без тела.