public static User ProfileJSONParse(Stream serverResponse, out ErrorResponse errorResponse) { errorResponse = null; User usr = new User(); string day, month, year; day = month = year = string.Empty; JsonTextReader jsonTextReader = new JsonTextReader(new StreamReader(serverResponse)); try { while (jsonTextReader.Read()) { // FirstName if (jsonTextReader.TokenType == JsonToken.PropertyName && string.Equals(jsonTextReader.Value, "fn")) { jsonTextReader.Read(); usr.FirstName = jsonTextReader.Value.ToString(); continue; } // LastName if (jsonTextReader.TokenType == JsonToken.PropertyName && string.Equals(jsonTextReader.Value, "ln")) { jsonTextReader.Read(); usr.LastName = jsonTextReader.Value.ToString(); continue; } // BirthDate if ((jsonTextReader.TokenType == JsonToken.PropertyName && string.Equals(jsonTextReader.Value, "bd")) || (jsonTextReader.TokenType == JsonToken.PropertyName && string.Equals(jsonTextReader.Value, "bm")) || (jsonTextReader.TokenType == JsonToken.PropertyName && string.Equals(jsonTextReader.Value, "by"))) { switch (jsonTextReader.Value.ToString()) { case "bd": jsonTextReader.Read(); day = jsonTextReader.Value.ToString(); break; case "bm": jsonTextReader.Read(); month = jsonTextReader.Value.ToString(); break; case "by": jsonTextReader.Read(); year = jsonTextReader.Value.ToString(); break; } if (day != "0" && day != string.Empty && month != "0" && month != string.Empty && year != "0" && year != string.Empty) { try { usr.Birthday = new DateTime(Convert.ToInt32(year), Convert.ToInt32(month), Convert.ToInt32(day)); } catch { usr.Birthday = new DateTime(0); } //usr.Birthday = (Convert.ToDateTime(month + "/" + day + "/" + year)).ToString("D",new CultureInfo("ru-RU")); } continue; } // Photo if (jsonTextReader.TokenType == JsonToken.PropertyName && string.Equals(jsonTextReader.Value, "bp")) { jsonTextReader.Read(); if (jsonTextReader.Value.ToString() != "0") usr.Photo200px = jsonTextReader.Value.ToString(); continue; } // Status if (jsonTextReader.TokenType == JsonToken.PropertyName && string.Equals(jsonTextReader.Value, "actv")) { while (jsonTextReader.Read()) { if (jsonTextReader.TokenType == JsonToken.PropertyName && string.Equals(jsonTextReader.Value, "5")) { jsonTextReader.Read(); if (jsonTextReader.Value.ToString() != "") usr.Status = jsonTextReader.Value.ToString(); break; } } continue; } // Sex if (jsonTextReader.TokenType == JsonToken.PropertyName && string.Equals(jsonTextReader.Value, "sx")) { jsonTextReader.Read(); switch (jsonTextReader.Value.ToString()) { case "1": usr.Sex = "женский"; break; case "2": usr.Sex = "мужской"; break; default: usr.Sex = ""; break; } continue; } // Town if (jsonTextReader.TokenType == JsonToken.PropertyName && string.Equals(jsonTextReader.Value, "cin")) { jsonTextReader.Read(); if (jsonTextReader.Value != null) usr.Town = jsonTextReader.Value.ToString(); continue; } //if (string.Equals(jsonTextReader.Value, "fr") || string.Equals(jsonTextReader.Value, "fro") || string.Equals(jsonTextReader.Value, "frm") || string.Equals(jsonTextReader.Value, "ph") || string.Equals(jsonTextReader.Value, "phw") || string.Equals(jsonTextReader.Value, "pr") || string.Equals(jsonTextReader.Value, "wa")) //{ // int i = 5; // if (i < 10) // { // i++; // } //} // MobilePhone if (jsonTextReader.TokenType == JsonToken.PropertyName && string.Equals(jsonTextReader.Value, "mo")) { jsonTextReader.Read(); usr.MobilePhone = jsonTextReader.Value.ToString(); continue; } // Upload Info For Album if (jsonTextReader.TokenType == JsonToken.PropertyName && string.Equals(jsonTextReader.Value, "ph")) { int depth = 0; while (jsonTextReader.Read()) { if (Configuration.SystemConfiguration.Aid == null || Configuration.SystemConfiguration.photoHash == null || Configuration.SystemConfiguration.photoRHash == null || Configuration.SystemConfiguration.photoUploadAddress == null) { if (jsonTextReader.TokenType == JsonToken.PropertyName && string.Equals(jsonTextReader.Value, "url")) { jsonTextReader.Read(); Configuration.SystemConfiguration.photoUploadAddress = jsonTextReader.Value.ToString(); continue; } if (jsonTextReader.TokenType == JsonToken.PropertyName && string.Equals(jsonTextReader.Value, "hash")) { jsonTextReader.Read(); Configuration.SystemConfiguration.photoHash = jsonTextReader.Value.ToString(); continue; } if (jsonTextReader.TokenType == JsonToken.PropertyName && string.Equals(jsonTextReader.Value, "rhash")) { jsonTextReader.Read(); Configuration.SystemConfiguration.photoRHash = jsonTextReader.Value.ToString(); continue; } if (jsonTextReader.TokenType == JsonToken.PropertyName && string.Equals(jsonTextReader.Value, "aid")) { jsonTextReader.Read(); Configuration.SystemConfiguration.Aid = jsonTextReader.Value.ToString(); continue; } //if (jsonTextReader.TokenType == JsonToken.PropertyName && string.Equals(jsonTextReader.Value, "n")) //{ // break; // если это не наш профиль, то структура массива несколько другая и приводит к зависаниям //} if (jsonTextReader.TokenType == JsonToken.StartArray || jsonTextReader.TokenType == JsonToken.StartObject) { depth++; } if (jsonTextReader.TokenType == JsonToken.EndArray || jsonTextReader.TokenType == JsonToken.EndObject) { depth--; if (depth == 0) { break; } } } else { break; } } continue; } // Upload Info For Avatar if (jsonTextReader.TokenType == JsonToken.PropertyName && string.Equals(jsonTextReader.Value, "pr")) { int depth = 0; while(jsonTextReader.Read()) { if (Configuration.SystemConfiguration.avatarUploadAddress == null || Configuration.SystemConfiguration.avatarHash == null || Configuration.SystemConfiguration.avatarRHash == null) { //if (jsonTextReader.TokenType == JsonToken.PropertyName && string.Equals(jsonTextReader.Value, "pa")) //{ // break; // если это не наш профиль, то структура массива несколько другая и приводит к зависаниям //} if (jsonTextReader.TokenType == JsonToken.PropertyName && string.Equals(jsonTextReader.Value, "url")) { jsonTextReader.Read(); Configuration.SystemConfiguration.avatarUploadAddress = jsonTextReader.Value.ToString(); continue; } if (jsonTextReader.TokenType == JsonToken.PropertyName && string.Equals(jsonTextReader.Value, "hash")) { jsonTextReader.Read(); Configuration.SystemConfiguration.avatarHash = jsonTextReader.Value.ToString(); continue; } if (jsonTextReader.TokenType == JsonToken.PropertyName && string.Equals(jsonTextReader.Value, "rhash")) { jsonTextReader.Read(); Configuration.SystemConfiguration.avatarRHash = jsonTextReader.Value.ToString(); continue; } if (jsonTextReader.TokenType == JsonToken.StartArray || jsonTextReader.TokenType == JsonToken.StartObject) { depth++; } if (jsonTextReader.TokenType == JsonToken.EndArray || jsonTextReader.TokenType == JsonToken.EndObject) { depth--; if (depth == 0) { break; } } } else { break; } } continue; } if (jsonTextReader.TokenType == JsonToken.PropertyName && string.Equals(jsonTextReader.Value, "ok")) { errorResponse = new ErrorResponse(); jsonTextReader.Read(); int error_code = Convert.ToInt32(jsonTextReader.Value); switch (error_code) { case -1: //истекшая сессия errorResponse.error_code = "1"; break; case -2: //флуд-контроль errorResponse.error_code = "2"; break; } return null; } } return usr; } catch (Exception) { return null; //throw; } }
public FriendsListResponse LoadFriendsOnlineListData(string uid, string sid, out ErrorResponse newErrorResponse) { var newFriendsListResponse = new FriendsListResponse(); newErrorResponse = null; //формируем запрос var newUri = new Uri { Address = SystemConfiguration.ServerConnectionToApiCalls, Method = "/data?act=friends_online&" }; newUri.Parameters.Add("id=" + uid); newUri.Parameters.Add("sid=" + sid); HttpWebRequest newHttpWebRequest = HttpUtility.PrepareHttpWebRequest(newUri.GetUri()); //WebResponse newHttpWebResponse = null; Stream newStream = null; try { using (WebResponse newHttpWebResponse = newHttpWebRequest.GetResponse()) { bool logging = (LogRequestEvent != null); if (logging) { newStream = new MemoryStream(2048); HttpUtility.CopyStream(HttpUtility.PrepareResponseStream(newHttpWebResponse), newStream); newStream.Flush(); newStream.Position = 0; OnLogRequest(new LogRequestEventArgs(string.Format("LoadFriendsOnlineListData requested: Address: {0} Header: {1}", newHttpWebRequest.Address, newHttpWebRequest.Headers), null)); } else { newStream = HttpUtility.PrepareResponseStream(newHttpWebResponse); } using (var newJsonTextReader = new JsonTextReader(new StreamReader(newStream))) { try { #region парсинг while (newJsonTextReader.Read()) { //открыли массив 1-ого порядка (список друзей) if (newJsonTextReader.TokenType == JsonToken.StartArray) { while (newJsonTextReader.Read()) //открываем очередь чтения списка друзей { //читаем содержимое списка друзей //открыли массив 1-ого порядка (профиль друг) if (newJsonTextReader.TokenType == JsonToken.StartArray) { User newUser = new User(); newFriendsListResponse.Users.Add(newUser); int index = 0; while (newJsonTextReader.Read()) //открываем очередь чтения профиля друга { //читаем содержимое профиля друга if (newJsonTextReader.TokenType == JsonToken.Integer || newJsonTextReader.TokenType == JsonToken.String) { switch (index) { case 0: newUser.Uid = newJsonTextReader.Value.ToString(); break; case 1: //fullName = newJsonTextReader.Value.ToString().Split(' '); //newUser.FirstName = fullName[0]; //newUser.LastName = fullName[1]; newUser.FullName = newJsonTextReader.Value.ToString(); break; case 2: newUser.Photo100px = (string)newJsonTextReader.Value; break; case 3: newUser.IsOnline = newJsonTextReader.Value.ToString(); break; } } //если до конца массива, то прерываем очередь чтения профиля друга else if (newJsonTextReader.TokenType == JsonToken.EndArray) { break; } index++; } } //если до конца массива, то прерываем очередь чтения (список друзей) else if (newJsonTextReader.TokenType == JsonToken.EndArray) { break; } } } //ошибки if (newJsonTextReader.TokenType == JsonToken.PropertyName && string.Equals(newJsonTextReader.Value, "ok")) { newErrorResponse = new ErrorResponse(); newJsonTextReader.Read(); int error_code = Convert.ToInt32(newJsonTextReader.Value); switch (error_code) { case -1: //истекшая сессия newErrorResponse.error_code = "1"; break; case -2: //флуд-контроль newErrorResponse.error_code = "2"; break; } return null; } } #endregion return newFriendsListResponse; } finally { if (logging) { newStream.Position = 0; OnLogResponse(new LogResponseEventArgs("LoadFriendsListData", newStream)); newStream.Flush(); } } } } } catch (ObjectDisposedException ex) { DebugHelper.WriteLogEntry(ex, "LoadFriendsOnlineListData ObjectDisposedException"); newErrorResponse = null; return null; } finally { newHttpWebRequest.Abort(); if (newStream != null) newStream.Close(); //if (newHttpWebResponse != null) // newHttpWebResponse.Close(); } }
public bool GetNextFriendsInfo(bool isRefresh, bool restoreSession, FriendsListResponse additionalFriendsListResponse, FriendsListResponse oldFriendsListResponse) { DebugHelper.WriteLogEntry("BaseLogic.GetAdditionalFriendsInfo"); // запускаем функцию try { if (isRefresh) { throw new Exception(); } return false; // если не обновление, то возвращаем что есть } catch (Exception) { //WiFi if (_iDataLogic.GetOnlyWIFI() == "1") { if (!CoreHelper.TurnWiFi(true)) { throw new VKException(ExceptionMessage.NoConnection); } } // восстанавливаем сессию if (restoreSession) { AutoLogin(); } ErrorResponse newErrorResponse = null; // ошибка if (oldFriendsListResponse == null) { return false; } // проходим по списку "стандартных" данных // если в "стандартном" списке есть пользователь, данных которого нет в "дополнительном" // закачиваем профиль foreach (User oldUser in oldFriendsListResponse.Users) { User additionalUserInfo = null; // буферная переменная для хранения полного профиля друга if (additionalFriendsListResponse.IsUserInList(oldUser.Uid)) { continue; // не добавляем, если уже есть инфо } else { // пользователя вносим в любом случае... User newUser = new User(); // для минимизирования данных создаем нового пользователя для которого храним только 3 поля additionalFriendsListResponse.Users.Add(newUser); newUser.Uid = oldUser.Uid; // ID пользователя // получаем профиль друга try { additionalUserInfo = _iCommunicationLogic.UserGetInfo(oldUser.Uid, _iDataLogic.GetSessionKey(), out newErrorResponse); } catch (VKException) { throw; } catch (TimeoutException ex) { DebugHelper.WriteLogEntry("BaseLogic.GetFriendsInfo TimeoutException Message: " + ex.Message); DebugHelper.WriteLogEntry("BaseLogic.GetFriendsInfo TimeoutException StackTrace: " + ex.StackTrace); throw new VKException(ExceptionMessage.NoConnection); } catch (WebException ex) { DebugHelper.WriteLogEntry("BaseLogic.GetFriendsInfo WebException Message: " + ex.Message); DebugHelper.WriteLogEntry("BaseLogic.GetFriendsInfo WebException StackTrace: " + ex.StackTrace); throw new VKException(ExceptionMessage.NoConnection); } catch (OutOfMemoryException ex) { DebugHelper.WriteLogEntry("BaseLogic.GetFriendsInfo OutOfMemoryException Message: " + ex.Message); DebugHelper.WriteLogEntry("BaseLogic.GetFriendsInfo OutOfMemoryException StackTrace: " + ex.StackTrace); throw; } catch (Exception ex) { DebugHelper.WriteLogEntry("BaseLogic.GetFriendsInfo Exception Message: " + ex.Message); DebugHelper.WriteLogEntry("BaseLogic.GetFriendsInfo Exception StackTrace: " + ex.StackTrace); } if (additionalUserInfo != null) // что-то получили от сервера { newUser.Birthday = additionalUserInfo.Birthday; // бездэй и мобилка из нового инфо newUser.MobilePhone = additionalUserInfo.MobilePhone; } else // ищем ошибку... { if (newErrorResponse != null) { if (newErrorResponse.error_code == "1") { if (!restoreSession) { return GetNextFriendsInfo(isRefresh, true, additionalFriendsListResponse, oldFriendsListResponse); } else { throw new VKException(ExceptionMessage.ServerUnavalible); } } else if (newErrorResponse.error_code == "2") { throw new VKException(ExceptionMessage.AccountBloked); } else { throw new VKException(ExceptionMessage.UnknownError); } } else { //throw new VKException(ExceptionMessage.UnknownError); } } // сохраняем результат //try //{ // DebugHelper.WriteLogEntry("(Кэш) Сохранение данных FriendsListAdditionalResponse..."); // bool result; // result = Cache.Cache.SaveToCache(additionalFriendsListResponse, string.Empty, "FriendsListAdditionalResponse"); // if (result) // { // DebugHelper.WriteLogEntry("(Кэш) Данные FriendsListAdditionalResponse успешно сохранены."); // } // else // { // DebugHelper.WriteLogEntry("(Кэш) Данные FriendsListAdditionalResponse не сохранены."); // } //} //catch (Exception) //{ // DebugHelper.WriteLogEntry("(Кэш) В процессе сохранения данных FriendsListAdditionalResponse произошла ошибка."); //} return true; // признак того что последний пользователь был обработан успешно } } //// сохраняем результат в кэш //try //{ // DebugHelper.WriteLogEntry("(Кэш) Сохранение данных FriendsListAdditionalResponse..."); // bool result; // result = Cache.Cache.SaveToCache(additionalFriendsListResponse, string.Empty, "FriendsListAdditionalResponse"); // if (result) // { // DebugHelper.WriteLogEntry("(Кэш) Данные FriendsListAdditionalResponse успешно сохранены."); // } // else // { // DebugHelper.WriteLogEntry("(Кэш) Данные FriendsListAdditionalResponse не сохранены."); // } //} //catch (Exception) //{ // DebugHelper.WriteLogEntry("(Кэш) В процессе сохранения данных FriendsListAdditionalResponse произошла ошибка."); //} return false; // если дошли до сюда, то значит юзверей для которых можно закачать данные больше нет } }
public PhotosCommentsResponse LoadPhotosCommentsData(string uid, string sid, string from, string to, string parent, out ErrorResponse newErrorResponse) { PhotosCommentsResponse newPhotosCommentsRespounse = new PhotosCommentsResponse(); newErrorResponse = null; // формируем запрос Uri newUri = new Uri { Address = SystemConfiguration.ServerConnectionToApiCalls, Method = "/data?act=photos_comments&" }; newUri.Parameters.Add("id=" + uid); newUri.Parameters.Add("sid=" + sid); newUri.Parameters.Add("from=" + from); newUri.Parameters.Add("to=" + to); newUri.Parameters.Add("parent=" + parent); HttpWebRequest newHttpWebRequest = HttpUtility.PrepareHttpWebRequest(newUri.GetUri()); //WebResponse newHttpWebResponse = null; Stream newStream = null; try { using (WebResponse newHttpWebResponse = newHttpWebRequest.GetResponse()) { bool logging = (LogRequestEvent != null); if (logging) { newStream = new MemoryStream(2048); HttpUtility.CopyStream(HttpUtility.PrepareResponseStream(newHttpWebResponse), newStream); newStream.Flush(); newStream.Position = 0; OnLogRequest(new LogRequestEventArgs(string.Format("LoadPhotosCommentsData requested: Address: {0} Header: {1}", newHttpWebRequest.Address, newHttpWebRequest.Headers), null)); } else { newStream = HttpUtility.PrepareResponseStream(newHttpWebResponse); } using (JsonTextReader newJsonTextReader = new JsonTextReader(new StreamReader(newStream))) { try { #region парсинг while (newJsonTextReader.Read()) { // кол-во комментариев if (newJsonTextReader.TokenType == JsonToken.PropertyName && string.Equals(newJsonTextReader.Value, "n")) { newJsonTextReader.Read(); newPhotosCommentsRespounse.pcrCount = Convert.ToInt32(newJsonTextReader.Value); } // timestamp if (newJsonTextReader.TokenType == JsonToken.PropertyName && string.Equals(newJsonTextReader.Value, "h")) { newJsonTextReader.Read(); newPhotosCommentsRespounse.pcrTimeStamp = Convert.ToInt32(newJsonTextReader.Value); } // автор if (newJsonTextReader.TokenType == JsonToken.PropertyName && string.Equals(newJsonTextReader.Value, "author")) { newJsonTextReader.Read(); if (newJsonTextReader.TokenType == JsonToken.StartArray) { User newUser = new User(); newPhotosCommentsRespounse.pcrAuthor = newUser; int index = 0; while (newJsonTextReader.Read()) { if (newJsonTextReader.TokenType == JsonToken.Integer || newJsonTextReader.TokenType == JsonToken.String) { switch (index) { case 0: newUser.Uid = Convert.ToString(newJsonTextReader.Value); break; case 1: newUser.FullName = Convert.ToString(newJsonTextReader.Value); break; } index++; } } } } // <...> комментарии if (newJsonTextReader.TokenType == JsonToken.PropertyName && string.Equals(newJsonTextReader.Value, "d")) { newJsonTextReader.Read(); // открыли массив 1-ого порядка (список комментариев) if (newJsonTextReader.TokenType == JsonToken.StartArray) { while (newJsonTextReader.Read()) // открываем очередь чтения списка комментариев { // читаем содержимое списка комментариев // открыли массив 2-ого порядка (отдельный комментарий) if (newJsonTextReader.TokenType == JsonToken.StartArray) { CommentPost newCommentPost = new CommentPost(); newPhotosCommentsRespounse.pcrComments.Add(newCommentPost); WallData newWallData = new WallData(); newCommentPost.cpWallData = newWallData; PostSender newPostSender = new PostSender(); newCommentPost.cpPostSender = newPostSender; PostReceiver newPostReceiver = new PostReceiver(); newCommentPost.cpPostReceiver = newPostReceiver; PhotoData newPhotoData = new PhotoData(); newCommentPost.cpPhotoData = newPhotoData; int index = 0; while (newJsonTextReader.Read()) // открываем очередь чтения сообщения { // читаем содержимое сообщения if (newJsonTextReader.TokenType == JsonToken.Integer) { switch (index) { case 0: newCommentPost.cpID = Convert.ToInt32(newJsonTextReader.Value); break; case 1: newCommentPost.cpTime = newCommentPost.cpTime.AddSeconds(Convert.ToInt32(newJsonTextReader.Value)); newCommentPost.cpTime = newCommentPost.cpTime.ToLocalTime(); break; } } // открыли массив 3-его порядка (содержание комментария, отправитель, получатель) else if (newJsonTextReader.TokenType == JsonToken.StartArray) { int iindex = 0; while (newJsonTextReader.Read()) // открываем очередь чтения содержания сообщения { // чтение содержания сообщения if (newJsonTextReader.TokenType == JsonToken.Integer || newJsonTextReader.TokenType == JsonToken.String) { switch (index) { case 2: string rawText = (string)newJsonTextReader.Value; if (parent.Equals("-1")) { rawText = Regex.Replace(rawText, "<br>", " ", RegexOptions.IgnoreCase); } else { rawText = Regex.Replace(rawText, "<br>", "\n", RegexOptions.IgnoreCase); } //rawText = Regex.Replace(rawText, "<[^>]*?>", string.Empty, RegexOptions.IgnoreCase); rawText = Regex.Replace(rawText, """, @"""", RegexOptions.IgnoreCase); rawText = Regex.Replace(rawText, "'", "'", RegexOptions.IgnoreCase); rawText = Regex.Replace(rawText, "<", "<", RegexOptions.IgnoreCase); rawText = Regex.Replace(rawText, ">", ">", RegexOptions.IgnoreCase); rawText = Regex.Replace(rawText, "&", "&", RegexOptions.IgnoreCase); newWallData.wdText = rawText; break; case 3: switch (iindex) { case 0: newPostSender.psUserID = Convert.ToInt32(newJsonTextReader.Value); break; case 1: rawText = (string)newJsonTextReader.Value; rawText = Regex.Replace(rawText, "\t", " ", RegexOptions.IgnoreCase); newPostSender.psUserName = rawText; break; case 2: newPostSender.psUserPhotoURL = (string)newJsonTextReader.Value; break; case 3: newPostSender.psSmallUserPhotoName = (string)newJsonTextReader.Value; break; case 4: newPostSender.psUserSex = Convert.ToInt32(newJsonTextReader.Value); break; case 5: newPostSender.psUserIsOnline = Convert.ToInt32(newJsonTextReader.Value); break; } break; case 4: switch (iindex) { case 0: newPostReceiver.prUserID = Convert.ToInt32(newJsonTextReader.Value); break; } break; case 7: switch (iindex) { case 0: newPhotoData.pdPhotoID = Convert.ToInt32(newJsonTextReader.Value); break; case 1: newPhotoData.pdPhotoURL130px = (string)newJsonTextReader.Value; break; } break; } } // если до конца массива, то прерываем очередь чтения (списка сообщений) else if (newJsonTextReader.TokenType == JsonToken.EndArray) { break; } iindex++; } } // если до конца массива, то прерываем очередь чтения (сообщения) else if (newJsonTextReader.TokenType == JsonToken.EndArray) { break; } index++; } } // если до конца массива, то прерываем очередь чтения (списка сообщений) else if (newJsonTextReader.TokenType == JsonToken.EndArray) { break; } } } } //ошибки if (newJsonTextReader.TokenType == JsonToken.PropertyName && string.Equals(newJsonTextReader.Value, "ok")) { newErrorResponse = new ErrorResponse(); newJsonTextReader.Read(); int error_code = Convert.ToInt32(newJsonTextReader.Value); switch (error_code) { case -1: //истекшая сессия newErrorResponse.error_code = "1"; break; case -2: //флуд-контроль newErrorResponse.error_code = "2"; break; } return null; } } #endregion return newPhotosCommentsRespounse; } finally { if (logging) { newStream.Position = 0; OnLogResponse(new LogResponseEventArgs("LoadPhotosCommentsData", newStream)); newStream.Flush(); } } } } } catch (ObjectDisposedException ex) { DebugHelper.WriteLogEntry(ex, "LoadPhotosCommentsData ObjectDisposedException"); newErrorResponse = null; return null; } finally { newHttpWebRequest.Abort(); if (newStream != null) newStream.Close(); //if (newHttpWebResponse != null) // newHttpWebResponse.Close(); } }