c# - Cookies dropped / lost on HttpWebRequest GetReponse -
occasionally program appeared fail on making http post. narrowed down cookie apparently being lost.
some investigation, narrowed down
httpwebresponse response = (httpwebresponse)http.getresponse(); strange thing is, doesn't happen time, typically when method first run, ok (after force re-addition of cookie.
i have seemingly hacked solution works case (but concerned break other cases, way hack solutions).
var cookiesprepull = cookies.getcookies(http.requesturi); httpwebresponse response = (httpwebresponse)http.getresponse(); foreach (cookie cookiepre in cookiesprepull) { bool bexist = false; foreach (cookie cookiepost in cookies.getcookies(http.requesturi)) { if (cookiepre.name == cookiepost.name) { bexist = true; break; } } if (!bexist) { cookies.add(cookiepre); } } what trying understand why cookie dropped getresponse call. examining in fiddler, nothing mentioned cookie. cookie code set 2 cookies. 1 exists, 1 doesn't.
the cookie hasn't expired. @ complete loss on this
cheers
try using cookiecollection , cookiecontainer maintain cookies:
cookiecontainer container = new cookiecontainer(); cookiecollection cookies = new cookiecollection(); httpwebrequest request = (httpwebrequest)webrequest.create("http://somesite.com/login"); request.cookiecontainer = container; httpwebresponse response = (httpwebresponse)request.getresponse(); cookies = response.cookies; // capture cookies response request = (httpwebrequest)webrequest.create("http://somesite.com/profile"); request.cookiecontainer = container; request.cookiecontainer.add(cookies); // add cookies previous response new request response = (httpwebresponse)request.getresponse(); cookies = response.cookies; // capture cookies response
Comments
Post a Comment