【发布时间】:2014-03-20 13:26:53
【问题描述】:
我使用 System.Net.Http.HttpClient 对象成功登录论坛并进行了许多操作。那么对象可能有一些状态,所以我想在程序再次打开时重用对象,实现自动登录。 我使用Json.net 将HttpClient 对象序列化到IsolatedStorage,但不可用。 有人可以帮助我吗?谢谢!!
//The code for initializing the HttpClient Object
HttpClientHandler handler = new HttpClientHandler();
handler.UseCookies = true;
HttpCliclient = new HttpClient(handler);
我先用Json.net序列化对象,得到json字符串: {"DefaultRequestHeaders":],"BaseAddress":null,"Timeout":"00:01:40","MaxResponseContentBufferSize":2147483647}
然后反序列化json字符串得到对象,但是对象需要重新登录才能进行操作。
using (IsolatedStorageFile storeFolder = IsolatedStorageFile.GetUserStoreForApplication()) {
string jsonData = JsonConvert.SerializeObject(httpclient);
System.Diagnostics.Debug.WriteLine(jsonData);
using (IsolatedStorageFileStream stream = storeFolder.CreateFile(path))
using (StreamWriter writer = new StreamWriter(stream))
writer.Write(jsonData);
}
using (IsolatedStorageFile storeFolder = IsolatedStorageFile.GetUserStoreForApplication()) {
string jsonData;
using (IsolatedStorageFileStream stream = storeFolder.OpenFile(path, FileMode.Open))
using (StreamReader reader = new StreamReader(stream))
jsonData = reader.ReadToEnd();
HttpClient httpclient = JsonConvert.DeserializeObject<HttpClient>(jsonData);
//need login again to do some operations
}
【问题讨论】:
-
那么存储登录对象或json序列化的问题在哪里?
-
我反序列化了json字符串来获取对象,但是对象需要重新登录才能进行操作。上面添加了序列化/反序列化代码。谢谢!
标签: c# serialization windows-phone-8 login dotnet-httpclient