为什么我的HttpWebRequest返回400BadRequest?以下代码因400BadRequest异常而失败。我的互联网连接很好,我可以访问该网站,但我无法使用HttpWebRequest获取uri。privatevoidbutton3_Click(objectsender,EventArgse){WebRequestreq=HttpWebRequest.Create(@"http://www.youtube.com/");try{//返回400错误请求...有什么想法吗???WebResponse响应=req.GetResponse();}catch(WebExceptionex){日志(ex.Message);首先,将WebRequest转换为HttpWebRequest,如下所示:HttpWebRequestreq=(HttpWebRequest)HttpWebRequest.Create(@"http://www.youtube.com/");然后,添加以下行:req.UserAgent="Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1;.NETCLR1.1.4322;.NETCLR2.0.50727)";在HttpWebRequest中设置UserAgent和Referer:varrequest=(HttpWebRequest)WebRequest.Create(@"http://www.youtube.com/");request.Referer="http://www.youtube.com/";//optionalrequest.UserAgent="Mozilla/4.0(compatible;MSIE8.0;WindowsNT6.0;WOW64;"+"Trident/4.0;SLCC1;.NETCLR2.0.50727;MediaCenterPC5.0;"+".NETCLR3.5.21022;.NETCLR3.5.30729;.NETCLR3.0.30618;“+”InfoPath.2;OfficeLiveConnector.1.3;OfficeLivePatch.0.0)";try{varresponse=(HttpWebResponse)request.GetResponse();使用(varreader=newStreamReader(response.GetResponseStream())){varhtml=reader.ReadToEnd();}}catch(WebExceptionex){Log(ex);}这个问题可能有很多原因你有关于WebException的更多细节吗?我之前遇到的一个原因是你有一个错误的用户代理字符串。某些网站(例如谷歌)检查该请求不是来自已知的用户代理,以防止自动机器人访问他们的页面。事实上,您可能需要检查YouTube的用户协议是否排除了您正在做的事情。如果确实如此,那么它已被网络服务批准,etcChannels做的比较好,也许你已经有一个代理服务器在运行,而你还没有设置HttpWebRequest的Proxy属性?以上是C#学习教程:WhydoesmyHttpWebRequestreturn400Badrequest?全部内容分享,如果对你有用,需要了解更多C#学习教程,希望大家多多关注——本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
