C# HttpWebRequest & HttpWebResponse

本文关键字:HttpWebResponse amp HttpWebRequest | 更新日期: 2023-09-27 18:21:24

我有个问题/我需要帮助,我正在为我的C#程序制作一个"更新程序",但我总是收到这个错误

无法将类型"System.Net.WebRequest"隐式转换为"System.Net.HttpWebRequest"。存在显式转换(您是缺少演员阵容?)

我试图让这个"更新程序"尽可能类似于我的.vb"更新程序",如果有人能帮我解决这个错误,我会非常感激和高兴,或者如果有人可以给我发一个关于C#的链接来阅读等等。我也会非常感谢,我对C#或C家族以及都很陌生

System.Net.HttpWebRequest request = System.Net.HttpWebRequest.Create("link");
System.Net.HttpWebResponse response = request.GetResponse();
System.IO.StreamReader sr = new System.IO.StreamReader(response.GetResponseStream());
string newestversion = sr.ReadToEnd();
string currentversion = Application.ProductVersion;

提前感谢!

C# HttpWebRequest & HttpWebResponse

您必须使用System.Net.WebRequest.Create方法并将返回的实例强制转换为System.Net.HttpWebRequest:

HttpWebRequest myReq =
    (HttpWebRequest)WebRequest.Create("http://www.contoso.com/");

请参阅:https://msdn.microsoft.com/en-us/library/system.net.httpwebrequest(v=vs.110).aspx#Anchor_7

如果您查看WebRequest.Create的文档,您会发现该方法的返回类型是WebRequest,因此您需要在代码中返回它:

System.Net.WebRequest request = System.Net.HttpWebRequest.Create("http://www.google.com");
System.Net.WebResponse response = request.GetResponse();
System.IO.StreamReader sr = new System.IO.StreamReader(response.GetResponseStream());
string newestversion = sr.ReadToEnd();

HttpWebRequest.Create()实际上是WebRequest.Create(),它返回一个WebRequest。如果需要,可以将其强制转换为HttpWebRequest