下面提到的代码用于从登录 url 获取 cookie,我正在尝试登录并保存 cookie 以发送它以进行进一步的交互,但我没有得到任何可以传递的 cookie。请帮忙
// 我的登录方法::
void login()
{
// Create the web request object
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(Constants.LOGIN_URL);
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.CookieContainer = cookieContainer;
// Start the request
webRequest.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), webRequest);
}
void GetRequestStreamCallback(IAsyncResult asynchronousResult)
{
HttpWebRequest webRequest = (HttpWebRequest)asynchronousResult.AsyncState;
// End the stream request operation
Stream postStream = webRequest.EndGetRequestStream(asynchronousResult);
// Create the post data
string postData = "client_key=" + Constants.CLIENT_KEY + "&email=" + username + "&password=" + password;
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
// Add the post data to the web request
postStream.Write(byteArray, 0, byteArray.Length);
postStream.Close();
// Start the web request
webRequest.BeginGetResponse(new AsyncCallback(GetResponseCallback), webRequest);
}
void GetResponseCallback(IAsyncResult asynchronousResult)
{
try
{
HttpWebRequest webRequest = (HttpWebRequest)asynchronousResult.AsyncState;
//webRequest.CookieContainer = cookieContainer;
//webRequest.Method = "GET";
HttpWebResponse response;
//Constants.userProfile.cookie = webRequest.CookieContainer;
// End the get response operation
response = (HttpWebResponse)webRequest.EndGetResponse(asynchronousResult);
foreach (Cookie cookieValue in response.Cookies)
{
Console.WriteLine("Cookie: " + cookieValue.ToString());
}
Stream streamResponse = response.GetResponseStream();
StreamReader streamReader = new StreamReader(streamResponse);
var Response = streamReader.ReadToEnd();
streamResponse.Close();
streamReader.Close();
response.Close();
// Overlay.Visibility = System.Windows.Visibility.Collapsed;
}
catch (WebException e)
{
Dispatcher.BeginInvoke(() =>
MessageBox.Show("Please try again", "Login Error", MessageBoxButton.OK));
Dispatcher.BeginInvoke(() =>
Console.WriteLine("Error Occurred" + e.Message));
}
}