static void Main(string[] args) { string link_service_document = "http://api-fotki.yandex.ru/api/users/"; RequestManager request_manager = new RequestManager (); foreach (string user in args) { string user_service_document = link_service_document + user + "/"; try { string photo_collection_content; string service_document = request_manager.GetString (user_service_document); string photo_collection_url = GetPhotoCollectionUrl (service_document); Console.WriteLine ("Photo collection URL: {0}", photo_collection_url); uint page_cnt = 0; Console.WriteLine ("Start downloading photo collection from " + user + "..."); DateTime date_start = DateTime.Now; do { photo_collection_content = request_manager.GetString (photo_collection_url); page_cnt++; //trying to get next page url Console.Write ("\rDownload {0} page", page_cnt); photo_collection_url = GetNextPageUrl (photo_collection_content); } while (!String.IsNullOrEmpty (photo_collection_url)); Console.WriteLine (); DateTime date_end = DateTime.Now; TimeSpan time_span = date_end.Subtract (date_start); Console.WriteLine ("Time of getting {0} pages: {1}", page_cnt, time_span); } catch (WebException exception) { HttpWebResponse response = (HttpWebResponse) exception.Response; if (response != null) { HttpStatusCode status_code = response.StatusCode; string response_text; StreamReader reader; using (reader = new StreamReader (response.GetResponseStream ())) { response_text = reader.ReadToEnd (); } if (status_code == HttpStatusCode.NotFound) throw new UserNotFoundException (response_text); } throw new ConnectionFailedException (exception.Message); } } }
public FotkiService(string user) { link_service_document += user + "/"; request_manager = new RequestManager (); request_manager.RequestProgressChanged += WhenRequestProgressChanged; try { string service_document = request_manager.GetString (link_service_document); ParseServiceDocument (service_document); } catch (WebException exception) { HttpWebResponse response = (HttpWebResponse) exception.Response; if (response != null) { HttpStatusCode status_code = response.StatusCode; string response_text; using (StreamReader reader = new StreamReader (response.GetResponseStream ())) { response_text = reader.ReadToEnd (); } if (status_code == HttpStatusCode.NotFound) throw new UserNotFoundException (response_text); } throw new ConnectionFailedException (exception.Message); } }