WebRequest在.net framework 4.8和dotnet 5之间的行为有所不同
以下代码在dotnet 5中引发异常,但在dotnet framework 4.8中没有:WebRequest在.net framework 4.8和dotnet 5之间的行为有所不同,.net,.net-5,.net-framework-4.8,.net,.net 5,.net Framework 4.8,以下代码在dotnet 5中引发异常,但在dotnet framework 4.8中没有: var req = (HttpWebRequest)HttpWebRequest.Create(urlIncludingScheme); req.AllowAutoRedirect = false; var resp = (HttpWebResponse)req.GetResponse() 在framework 4.8中,返回一个HttpWebResponse,状态代码为“Moved” 在dotnet
var req = (HttpWebRequest)HttpWebRequest.Create(urlIncludingScheme);
req.AllowAutoRedirect = false;
var resp = (HttpWebResponse)req.GetResponse()
在framework 4.8中,返回一个HttpWebResponse,状态代码为“Moved”
在dotnet core中,引发异常并显示消息“远程服务器返回错误:(301)永久移动”
这让我对从4.8移植到dotnet5有些紧张。我希望这种行为在dotnet5中保持不变
有人能告诉我这是一个bug还是实际上是一个entention吗
这里也讨论了这一点:
但没有讨论这种差异背后的原因
此外,这里的讨论并没有解释在这种情况下是否真的打算做出突破性的改变:
这也被报告为一个bug并在这里解决了,但似乎没有被修复:事实证明我的项目运行的是dotnet core 3.1 框架4.8:无例外 dotnet core 3.1:引发异常 Dotnet5:没有例外-因此该漏洞似乎已在Dotnet5中修复
我认为可以得出这样的结论:这个异常实际上是无意的,现在已经被修复了。
HttpWebRequest
不再被推荐,应该改用HttpClient
,但这并不能解释为什么行为会发生变化。改变的行为使得不经修改就无法移植现有的框架代码。我在framework和dotnet core中使用了一个dotnet标准回购协议,现在在这两种环境中的行为有所不同。您可以比较和查找来源,再次感谢您的时间,但这并没有回答我的问题,即行为为何发生了变化。