Обновите Webclient, чтобы получить новые данные - PullRequest
0 голосов
/ 03 апреля 2012

В тот момент, когда я использую это, мне нужно перезапустить приложение, чтобы обновить данные. Есть несколько сообщений, в которых говорится, что я должен поставить случайное число в конце, но я не могу этого сделать, потому что я ставлю число в конце, чтобы оно работало.

Какое решение?

   void myButton_Click(object sender, RoutedEventArgs e)
    {
        i = 0;
        lstService.Items.Clear();
        lstDestination.Items.Clear();
        listTime.Items.Clear();


        if (textSearchBox.Text == "Cranleigh Avenue")
        {
            textBlock2.Text = textSearchBox.Text;
            txtstopId.Text = "6445";
        }

        if (textSearchBox.Text == "Cranleigh Avenue (briamaw)")
        {
            textBlock2.Text = textSearchBox.Text;
            txtstopId.Text = "7099";
        }                

        else if (textSearchBox.Text == "Brighton Station (stop A)")
        {
            textBlock2.Text = textSearchBox.Text;
            txtstopId.Text = "7052";
        }

        else if (textSearchBox.Text == "Brighton Station (stop B)")
        {
            textBlock2.Text = textSearchBox.Text;
            txtstopId.Text = "7053";
        }


        else if (textSearchBox.Text == "Brighton Station (stop C)")
        {
            textBlock2.Text = textSearchBox.Text;
            txtstopId.Text = "7054";
        }


        else if (textSearchBox.Text == "Brighton Station (stop D)")
        {
            textBlock2.Text = textSearchBox.Text;
            txtstopId.Text = "7055";
        }

         else if (textSearchBox.Text == "Sea Life Centre (stop K)")
        {
            textBlock2.Text = textSearchBox.Text;
             txtstopId.Text = "7642";
        }

        else if (textSearchBox.Text == "Race Hill")
        {
            textBlock2.Text = textSearchBox.Text;
            txtstopId.Text = "6724";

        }



        string myvar = txtstopId.Text;
        textSearchBox.Text = "";
        try
        {
            WebClient webClient = new WebClient();
            Uri uri = new Uri("http://www.URL.aspx?stopid=" + HttpUtility.UrlEncode(myvar));
            webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(webClient_OpenReadCompleted);
            webClient.OpenReadAsync(uri);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
    public int i;
    void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
    {
        DataContractJsonSerializer ser = null;



        try
        {


            ser = new DataContractJsonSerializer(typeof(RootContainer));
            RootContainer rootContainer = ser.ReadObject(e.Result) as RootContainer;
            foreach (Departures em in rootContainer.Departures)
            {
                i = i + 1;

                if (i < 9)
                {


                    string id = em.ServiceName;
                    string dt = em.Destination;
                    string tm = em.DepartureTimeAsString;
                    lstService.Items.Add(id);
                    lstDestination.Items.Add(dt);
                    listTime.Items.Add(tm);



                }
            }
        }


        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }

    }

Редактировать

  WebClient webClient = new WebClient();
            string url = string.Format("http://www.URL.aspx?stopid={0}&ts={1}", HttpUtility.UrlEncode(myvar) + DateTime.Now.Ticks);                
            Uri uri = new Uri(url);
            webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(webClient_OpenReadCompleted);
            webClient.OpenReadAsync(uri); 

1 Ответ

3 голосов
/ 03 апреля 2012

Я бы использовал временную метку, а не случайное число:

string url = string.Format("http://www.URL.aspx?stopid={0}&ts={1}",
      HttpUtility.UrlEncode(myvar),
      DateTime.Now.Ticks);
Uri uri = new Uri(url);
...