如果网站弹出503,那么webclient就会抛出异常。
例如,转到http://www.google.com/sorry/?continue=http%3A%2F%2Fwww.google.com%2Fsearch%3Fq%3Dkucing
如果我们在Internet Explorer中打开它,它将打开一个页面。如果我们使用livehttpheader它返回503而不是200.但是,它仍然显示一些东西。
现在尝试卷曲同一页。
http://www.google.com/sorry/?continue=http%3A%2F%2Fwww.google.com%2Fsearch%3Fq%3Dkucing
卷曲会停止失败。那么如何让卷发处理503像200?
我们尝试在谷歌搜索某些内容时的样本。谷歌有时需要验证码。好吧,只是把它弹出来让我可以填写验证码。但是webclient只是抛出异常而不将内容分配给文件。那不好。
如何确保webclient不会丢弃任何内容。
同样适用于卷曲
答案 0 :(得分:2)
没有人回答,所以我只告诉CURLOPT_FAILONERROR
将其设置为false。
我认为webclient有类似的东西。将此作为答案,除非有人提出更好的东西。
答案 1 :(得分:0)
对于WebClient
,您需要处理WebException.Response
。例如。此LINQPad查询转储我的Web服务器的“未找到”错误网页提供的HTML:
Dim wc = New System.Net.WebClient
Try
Dim rd = wc.DownloadData(New Uri("http://localhost/test"))
rd.Dump
Catch Ex As System.Net.WebException
Dim rs = Ex.Response
Call (New StreamReader(rs.GetResponseStream)).ReadToEnd.Dump
End Try
现在实际使用WebClient
。