我没有使用Cookie的经验,而且我尝试使用Cookie(我从httpwebrequest
POST 方法获取)来访问网站。在 POST 方法中,我完成了身份验证部分,最后我获得了cookie。我不知道如何使用此cookie访问网站,它类似于HttpWebRequest POST Method 。
希望任何人都可以给我一些建议,指针或一些示例代码。谢谢你的帮助。
到目前为止,这是我的代码。
private void GetResponseCallback(IAsyncResult asynchronousResult)
{
HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
// End the operation
HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);
Stream streamResponse = response.GetResponseStream();
StreamReader streamRead = new StreamReader(streamResponse);
using (IsolatedStorageFile isf =
IsolatedStorageFile.GetUserStoreForApplication())
{
using (IsolatedStorageFileStream isfs = isf.OpenFile("CookieExCookies",
FileMode.OpenOrCreate, FileAccess.Write))
{
using (StreamWriter sw = new StreamWriter(isfs))
{
foreach (Cookie cookieValue in response.Cookies)
{
sw.WriteLine(cookieValue.ToString());
}
sw.Close();
}
}
}
// Close the stream object
streamResponse.Close();
streamRead.Close();
response.Close();
//allDone.Set();
}
TextBox中的cookie存储
private void ReadFromIsolatedStorage()
{
using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())
{
using (IsolatedStorageFileStream isfs =
isf.OpenFile("CookieExCookies", FileMode.OpenOrCreate))
{
using (StreamReader sr = new StreamReader(isfs))
{
tbTesting.Text = sr.ReadToEnd();
sr.Close();
}
}
}
}
答案 0 :(得分:0)
您可以使用CookieContainer类来获取和设置Cookie。当你使用它时,它会为你处理一切。您不必明确手动设置cookie。请检查以下代码。
首先创建一个CookieContainer类的实例。
CookieContainer cookieContainer = new CookieContainer();
然后使用它进行身份验证,然后将其分配给用于身份验证的每个请求
//Login request to get the cookie
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://mydomain.com/login.svc");
req.Method = "POST";
if (req.SupportsCookieContainer)
req.CookieContainer = cookieContainer;
.. rest of your code..
//Any other request which needs a cookie
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://mydomain.com/getuserdata.svc");
req.Method = "POST";
if (req.SupportsCookieContainer)
req.CookieContainer = cookieContainer;
.. rest of your code..