我知道这是一个经常被问到的问题,也有很多建议和解决方案。但是,我尝试了几乎所有这些,但仍然无法解决这个问题,即使配置了Fiddler的http请求标头。我不确定这是否是特定的,或者我错过了其他重要的东西。所以我再次提出这个问题,希望能得到你的进一步支持。提前谢谢!
以下是链接使用的代码:
Dim WC As New System.Net.WebClient
'WC.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705Wink")
WC.Headers.Add(HttpRequestHeader.Accept, "Text/ html, Application / xhtml + Xml, Application / Xml;q=0.9, Image / webp, Image / apng,*/*;q=0.8")
WC.Headers.Add(HttpRequestHeader.UserAgent, "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36")
WC.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br")
WC.Headers.Add(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.8")
'WC.Headers.Add(HttpRequestHeader.KeepAlive, "true")
WC.Headers.Add(HttpRequestHeader.Host, "www.fda.gov")
'WC.Headers.Add(HttpRequestHeader.ContentType, "")
'WC.Headers.Add(HttpRequestHeader.ContentLength, "")
Dim strURL As String = "https://www.fda.gov/downloads/Drugs/GuidanceComplianceRegulatoryInformation/Guidances/UCM227351.pdf"
'Threading.Thread.Sleep(5000)
WC.DownloadFile(strURL, "1.pdf")
任何想法都会受到高度赞赏!
再次感谢!
斯坦利
答案 0 :(得分:0)
首先,每当您使用.net发出Web请求时,您应该捕获异常,特别是webexception类型。这将让您从服务器获得响应。见下文。
Dim strURL As String = "https://www.fda.gov/downloads/Drugs/GuidanceComplianceRegulatoryInformation/Guidances/UCM227351.pdf"
Try
WC.DownloadFile(strURL, "1.pdf")
Catch ex As Net.WebException
If ex.Response IsNot Nothing Then
Dim response = ex.Response
Dim dataStream = ex.Response.GetResponseStream
Dim reader = New StreamReader(dataStream)
Dim errorDetails As String = reader.ReadToEnd
' do something with errorDetails
End If
End Try
我很好奇所以我为你的网址做了同样的事情,发现它返回了这个有用的信息。
此页面无法显示。对于此问题造成的任何不便,我们深表歉意。确保您使用的是支持TLS.1.2的客户端。
要更正错误,请在网络请求之前添加此代码。
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12