C#WebRequest错误

时间:2018-07-15 12:06:09

标签: c# .net

所以我有这段代码:

    partial void runflooder (Foundation.NSObject sender) {
            string[] links;
            {
                links = new string[amount];
                for (int i = 0; i < links.Length; i++)
                {
                    email = $"ghoulrotmg{RandomString(10)}@gmail.com";
                    links[i] = "http://" + serverIP
                        + ":" + serverPort + "/account/register?isAgeVerified=1&entrytag=&ignore=77240&newPassword=ghoulrotmg&newGUID="
                        + email + "&guid=597BFBCFA0E1C4195FD6E8392557CD960361878D%22";
                generateaccountsprogress.MaxValue = amount;                              
                generateaccountsprogress.IncrementBy(amount);
            }            
        runflooderlabel.StringValue = string.Format("App is running.");
        runflooderlabel.TextColor = NSColor.SystemGreenColor;
            for (int i = 0; i < links.Length; i++) {
                WebRequest request = WebRequest.Create(links[i]);
            }
            progress.MaxValue = amount;                              
            progress.IncrementBy(amount);            
    }

}

我想做的是生成链接。 然后,我希望该应用程序访问那些已创建的链接。但是,它没有向该网站发出任何请求。生成的链接很好,并且经过测试可以正常工作(我将它们写到文件中并且可以工作)。错误显然在这里:

        for (int i = 0; i < links.Length; i++) {
            WebRequest request = WebRequest.Create(links[i]);
        }

有人可以帮我解决这个问题。

2 个答案:

答案 0 :(得分:4)

您正在创建WebRequest;您必须致电.GetResponse()才能真正提出请求。

请注意,除非需要使用NET 3.5或更低版本,否则使用HttpClient是更现代且可以说非常容易的方法。

答案 1 :(得分:0)

谢谢大家,我解决了这个问题。

我的代码缺少GetResponse()

这是我的做法:

for (int i = 0; i < links.Length; i++) 
{
    var request    = WebRequest.Create(links[i]);
    var response   = (HttpWebResponse)request.GetResponse();
    var dataStream = response.GetResponseStream();                    
    var reader     = new StreamReader(dataStream);
    var responseFromServer = reader.ReadToEnd();

    Console.WriteLine (responseFromServer);
    reader.Close();
    dataStream.Close();
    response.Close(); 
}

大多数直接来自Microsoft文档。