मेरे पास एक विनफॉर्म एप्लिकेशन है जो मैं उपभोक्ता खातों पर कई परीक्षण चलाता हूं। निष्पादित करने के लिए परीक्षणों को एक बार लॉगिन की आवश्यकता होती है।सी # कुकीज़ का उपयोग कर WebRequest
string paramaters = "authmethod=on&chkRememberMe=on&login-form-type=pwd&password=" + pw.Text + "&userid=" + uid.Text + "&username=" + uid.Text;
string strResponse;
HttpWebRequest requestLogin = (HttpWebRequest)WebRequest.Create("https://www.url.com/login.form");
requestLogin.Method = "POST";
requestLogin.CookieContainer = cookieJar;
requestLogin.ContentType = "application/x-www-form-urlencoded";
requestLogin.ContentLength = paramaters.Length;
StreamWriter stOut = new StreamWriter(requestLogin.GetRequestStream(), System.Text.Encoding.ASCII);
stOut.Write(paramaters);
stOut.Close();
StreamReader stIn = new StreamReader(requestLogin.GetResponse().GetResponseStream());
strResponse = stIn.ReadToEnd();
stIn.Close();
यह स्क्रिप्ट लॉगिन करने के लिए बस ठीक काम करता है, समस्या यह है जब मैं वास्तव में परीक्षण मैं एक स्ट्रिंग (एचटीएमएल परिणाम) में सभी परिणाम वापस करने की जरूरत को चलाने के लिए की जरूरत है।
private string runTestRequest(Uri url, string parameters)
{
string testResults = string.Empty;
HttpWebRequest runTest = (HttpWebRequest)WebRequest.Create(url);
runTest.CookieContainer = cookieJar;
runTest.Method = "POST";
runTest.ContentType = "application/x-www-form-urlencoded";
StreamWriter stOut = new StreamWriter(runTest.GetRequestStream(), System.Text.Encoding.ASCII);
stOut.Write(parameters);
stOut.Close();
StreamReader stIn = new StreamReader(runTest.GetResponse().GetResponseStream());
testResults = stIn.ReadToEnd();
stIn.Close();
return testResults;
}
लेकिन यह जाता है और लॉगिन करने का प्रयास करता है। मैं इस + कई अन्य वेब अनुरोधों के साथ पिछले लॉगिन अनुरोध से कुकी का उपयोग कैसे कर सकता हूं?
सहायता के लिए धन्यवाद।
संपादित करें:
मैं अपने कोड को यह जोड़ा अभी तक जो BrokenGlass के रूप में सिर्फ एक छोटे से अलग छोड़कर कह रहा है एक ही बात करना चाहिए, लेकिन अभी भी काम नहीं करता।
foreach (Cookie cookie in responseLogin.Cookies)
{
cookieJar.Add(new Cookie(cookie.Name.Trim(), cookie.Value.Trim(), cookie.Path, cookie.Domain));
richTextBox2.Text += cookie.Name.ToString() + Environment.NewLine + cookie.Value.ToString() + Environment.NewLine + cookie.Path.ToString() + Environment.NewLine + cookie.Domain.ToString();
}
आप की जाँच की थी क्या cookieJar में जब नया अनुरोध चल रहा है? क्या इसमें कुछ भी शामिल है? – Artemiy
मैंने एक संदेशबॉक्स किया था। दिखाएं (cookieJar.Count.ToString()); और यह दिखाता है कि गणना 2 – Alex