繁体   English   中英

c# HttpWebRequest "POST" with Loop

[英]c# HttpWebRequest "POST" with Loop

我想要做的POST一个WebRequest用于循环中的网页游戏,因为POST内容包含了许多。 现在我有一个冻结的程序。

这是我的代码:

String loginData = "login";

// Set Cookie 
CookieContainer cookieContainer = new CookieContainer();

// Login

HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("URL");
req.CookieContainer = cookieContainer;
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
ASCIIEncoding encoding = new ASCIIEncoding();
byte[] loginDataBytes = encoding.GetBytes(loginData);
req.ContentLength = loginDataBytes.Length;
Stream stream = req.GetRequestStream();
stream.Write(loginDataBytes, 0, loginDataBytes.Length);
stream.Close();
HttpWebResponse res = (HttpWebResponse)req.GetResponse();

// Start the Loop

for (int i=1; i < 10; i++)
{

    String Friendly = "frday=" + i;

    req = (HttpWebRequest)HttpWebRequest.Create("URL");
    req.CookieContainer = cookieContainer;
    req.Method = "POST";
    req.ContentType = "application/x-www-form-urlencoded";
    byte[] Fr = encoding.GetBytes(Friendly);
    req.ContentLength = Fr.Length;

    Stream stream = req.GetRequestStream();
    stream.Write(Fr, 0, Fr.Length);
    stream.Close();

    Console.WriteLine("FriendlyNr: " + i);
}

输出是:

友好编号:1

而 Browsergame 只得到了一个 Post Content。

所以第一次运行正常,但第二次运行不起作用。 程序冻结在

Stream stream = req.GetRequestStream();

我想循环10次。 如何做到这一点?

您使用的是同一个Stream对象——每次都需要使用一个新的HttpRequest 看看这里,看看一个潜在的解决方案。 确保您还关闭了Stream对象。

此外,将代码放在 using 语句中,例如using (var requestStream = request.GetRequestStream())将有助于确保正确处理和收集对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM