Example #1
0
        private async void SearchBtn_Click(object sender, RoutedEventArgs e)
        {
            if (this.CurrentCityName == null || this.CurrentCityName == string.Empty)
            {
                var messageDialog = new MessageDialog("请先定位城市,然后再搜索");
                await messageDialog.ShowAsync();

                return;
            }
            //Helpers.ScenarioStarted(searchBtn, cancelBtn);
            int  retry  = 0;
            bool failed = true;

            while (retry < 3 && failed)
            {
                try
                {
                    string             lineId  = this.lineTextbox.Text;
                    string             url     = SogoMapService.GetBusInfoURL(this.CurrentCityName, lineId);
                    HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, url);

                    HttpResponseMessage response = await httpClient.SendAsync(request,
                                                                              HttpCompletionOption.ResponseHeadersRead);

                    string result = "";
                    using (Stream responseStream = await response.Content.ReadAsStreamAsync())
                    {
                        int    read          = 0;
                        byte[] responseBytes = new byte[1000];
                        do
                        {
                            read = await responseStream.ReadAsync(responseBytes, 0, responseBytes.Length);

                            string tmp = System.Text.Encoding.GetEncoding("GBK").GetString(responseBytes, 0, read);
                            result += tmp;
                        }while (read != 0);
                    }

                    this.CurrentBus = SogoMapService.GetBusInfo(result);

                    if (this.CurrentBus != null && this.CurrentBus.response.busError != null)
                    {
                        failed = false;
                        var messageDialog = new MessageDialog(this.CurrentBus.response.busError.errMsg);
                        await messageDialog.ShowAsync();

                        return;
                    }
                    else if (this.CurrentBus != null)
                    {
                        failed = false;
                        loadView(typeof(BusLineChoose));
                        return;
                    }
                }
                catch
                {
                    failed = true;
                    retry++;
                }
            }

            if (retry == 3 && failed)
            {
                var messageDialog = new MessageDialog("搜索结果有误,请修改搜索值重新搜索");
                await messageDialog.ShowAsync();
            }
        }