Json 刷新Webclient以获取新数据

Json 刷新Webclient以获取新数据,json,windows-phone-7,webclient,Json,Windows Phone 7,Webclient,在我使用它的时候,我必须重新启动应用程序来刷新数据。有几篇帖子说我应该在末尾加上一个随机数,但我不能这样做,因为我在末尾加了一个数字,这样它才能工作 解决办法是什么 void myButton_Click(object sender, RoutedEventArgs e) { i = 0; lstService.Items.Clear(); lstDestination.Items.Clear(); listTime.

在我使用它的时候,我必须重新启动应用程序来刷新数据。有几篇帖子说我应该在末尾加上一个随机数,但我不能这样做,因为我在末尾加了一个数字,这样它才能工作

解决办法是什么

   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);
        }

    }

我会使用时间戳而不是随机数:

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

我会使用时间戳而不是随机数:

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

当我在上面替换它时,它抛出formatexpection
WebClient-WebClient=new-WebClient();字符串url=string.Format(“http://www.URL.aspx?stopid={0}&ts={1}”,HttpUtility.UrlEncode(myvar)+DateTime.Now.Ticks);Uri=新的Uri(url);webClient.OpenReadCompleted+=新的OpenReadCompletedEventHandler(webClient\u OpenReadCompleted);OpenReadAsync(uri)编辑-刚刚添加了它。你能把它放到主要问题中吗。它的格式更简单。它应该是myVar和DAteTime.Now.Ticks之间的逗号,格式为string.format(“url?stopid={0}&ts={1}”,HttpUtility.UrlEncode(myVar),DAteTime.Now.Ticks);当我在上面替换它时,它抛出formatexpection
WebClient-WebClient=new-WebClient();字符串url=string.Format(“http://www.URL.aspx?stopid={0}&ts={1}”,HttpUtility.UrlEncode(myvar)+DateTime.Now.Ticks);Uri=新的Uri(url);webClient.OpenReadCompleted+=新的OpenReadCompletedEventHandler(webClient\u OpenReadCompleted);OpenReadAsync(uri)编辑-刚刚添加了它。你能把它放到主要问题中吗。它的格式更简单。它应该是myVar和DAteTime.Now.Ticks之间的逗号,格式为string.format(“url?stopid={0}&ts={1}”,HttpUtility.UrlEncode(myVar),DAteTime.Now.Ticks);