Example #1
0
        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;
        }
Example #2
0
        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);
        }