public static List<PlacesResponseResultsDataContract> GetPlaceResponse(string location = "", string apiKey = "") { List<PlacesResponseResultsDataContract> results = new List<PlacesResponseResultsDataContract>(); PlacesResponseDataContract mainResponse = new PlacesResponseDataContract(); int backofftimer = 10; do { string url = "https://maps.googleapis.com/maps/api/place/textsearch/json?key=" + apiKey; if (mainResponse.nextPageToken != null) { url += "&pagetoken=" + mainResponse.nextPageToken; } url += "&location=" + location; url += "&radius=50"; url += "&query=" + System.Web.HttpUtility.UrlEncode(searrchText); url += "&types=fire_station"; YO: WebRequest wr = WebRequest.Create(url); wr.ContentLength = 0; wr.Method = "GET"; string json; using (var sr = new StreamReader(wr.GetResponse().GetResponseStream())) { json = sr.ReadToEnd(); } mainResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<PlacesResponseDataContract>(json); if (mainResponse.status != null) { Console.WriteLine(mainResponse.status); } if (mainResponse.status == "INVALID_REQUEST") { backofftimer += backofftimer; Console.WriteLine("BORKEN! backing off for " + backofftimer); System.Threading.Thread.Sleep(backofftimer); goto YO; } mainResponse.results.ForEach(x => results.Add(x)); } while (mainResponse.nextPageToken != null); return results; }
public static List <PlacesResponseResultsDataContract> GetPlaceResponse(string location = "", string apiKey = "") { List <PlacesResponseResultsDataContract> results = new List <PlacesResponseResultsDataContract>(); PlacesResponseDataContract mainResponse = new PlacesResponseDataContract(); int backofftimer = 10; do { string url = "https://maps.googleapis.com/maps/api/place/textsearch/json?key=" + apiKey; if (mainResponse.nextPageToken != null) { url += "&pagetoken=" + mainResponse.nextPageToken; } url += "&location=" + location; url += "&radius=50"; url += "&query=" + System.Web.HttpUtility.UrlEncode(searrchText); url += "&types=fire_station"; YO: WebRequest wr = WebRequest.Create(url); wr.ContentLength = 0; wr.Method = "GET"; string json; using (var sr = new StreamReader(wr.GetResponse().GetResponseStream())) { json = sr.ReadToEnd(); } mainResponse = Newtonsoft.Json.JsonConvert.DeserializeObject <PlacesResponseDataContract>(json); if (mainResponse.status != null) { Console.WriteLine(mainResponse.status); } if (mainResponse.status == "INVALID_REQUEST") { backofftimer += backofftimer; Console.WriteLine("BORKEN! backing off for " + backofftimer); System.Threading.Thread.Sleep(backofftimer); goto YO; } mainResponse.results.ForEach(x => results.Add(x)); }while (mainResponse.nextPageToken != null); return(results); }