提问人:KoRo 提问时间:8/17/2023 最后编辑:KoRo 更新时间:8/17/2023 访问量:73
VB.net HttpWebRequest 超时
VB.net HttpWebRequest TimeOut
问:
我在使用HttpClient时遇到了一些问题。 我计划提出几个 Web 请求,主要是 GET 和 POST。 几年前,我能够毫无顾虑地做到这一点,在那里我想再次做一个小项目,只是它不再起作用了:程序冻结(因为它不是异步的,但我并不真正关心这一点)并给我发送超时。 在那里,我使用的是 HttpClient,据我所知,它比 HttpWebRequest 更安全,因为在此之前我使用的是 HttpWebRequest。 所以代码问题或其他,我真的不知道.. 我尝试了几个主机,但一直都是一样的。 在那里,测试是用 youtube 进行的。它必须向我展示答案,所以页面的源代码在逻辑上。
以下是使用的代码:
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
MsgBox(WRequest("https://www.youtube.com/", "GET", ""))
'WRequest("http://", "POST", "name=jane&stat=active")
End Sub
Function WRequest(URL As String, method As String, POSTdata As String) As String
Dim responseData As String = ""
Try
Dim cookieJar As New Net.CookieContainer()
Dim hwrequest As Net.HttpWebRequest = Net.WebRequest.Create(URL)
hwrequest.CookieContainer = cookieJar
hwrequest.Accept = "*/*"
hwrequest.AllowAutoRedirect = True
hwrequest.UserAgent = "http_requester/0.1"
hwrequest.Timeout = 600
hwrequest.Method = method
If hwrequest.Method = "POST" Then
hwrequest.ContentType = "application/x-www-form-urlencoded"
Dim encoding As New Text.ASCIIEncoding() 'Use UTF8Encoding for XML requests
Dim postByteArray() As Byte = encoding.GetBytes(POSTdata)
hwrequest.ContentLength = postByteArray.Length
Dim postStream As IO.Stream = hwrequest.GetRequestStream()
postStream.Write(postByteArray, 0, postByteArray.Length)
postStream.Close()
End If
Dim hwresponse As Net.HttpWebResponse = hwrequest.GetResponse()
If hwresponse.StatusCode = Net.HttpStatusCode.OK Then
Dim responseStream As IO.StreamReader =
New IO.StreamReader(hwresponse.GetResponseStream())
responseData = responseStream.ReadToEnd()
End If
hwresponse.Close()
Catch e As Exception
responseData = "An error occurred: " & e.Message
End Try
Return responseData
End Function
End Class
答: 暂无答案
评论
hwrequest.Timeout = 600
100,000
Option Strict
ON