我正在使用我的c#
应用向网页发送请求。在发送任何请求之前,我必须登录此网页。我希望每次我想做一些工作都避免记录,所以我将cookie存储在VARBINARY
列的sql server数据库中。
让我们说我每天发送50 POST requests
:
private string getRequest(string url, string postData = "")
{
try
{
System.Net.ServicePointManager.Expect100Continue = true;
StreamReader reader;
var request = WebRequest.Create(url) as HttpWebRequest;
request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14";
request.CookieContainer = Cookie;
request.AllowAutoRedirect = true;
request.ContentType = "application/x-www-form-urlencoded";
request.Headers.Add("X-Requested-With", "XMLHttpRequest");
postData = Uri.EscapeUriString(postData);
request.Method = "POST";
request.ContentLength = postData.Length;
Stream requestStream = request.GetRequestStream();
Byte[] postBytes = Encoding.ASCII.GetBytes(postData);
requestStream.Write(postBytes, 0, postBytes.Length);
requestStream.Close();
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
foreach (Cookie tempCookie in response.Cookies)
{
Cookie.Add(tempCookie);
}
reader = new StreamReader(response.GetResponseStream());
string readerReadToEnd = reader.ReadToEnd();
response.Close();
database.updateCookie(AccountId, Cookie); //here I am updating the cookies
return readerReadToEnd;
}
catch { return ""; }
我是否真的需要在每次请求后更新Cookies
?或者也许我可以在发送50 POST requests
之后才更新我的Cookie?
我在问,因为有时我的饼干会持续几天,有时它们会在1分钟后死亡。我真的不知道为什么以及如何避免这种情况。
我是否必须存储最新的cookie,或者每次都可以使用相同的颜色?
答案 0 :(得分:0)
每个站点决定特定cookie的有效期。因此,您需要单独获取每个站点的信息才能正确执行。注意cookie上的“过期”(在“set-cookie”响应标题中)可能会为您提供有关何时保证cookie过期的初步指导。
共同到期/有效范围: