C# WebClient.DownloadStringAsync URL不工作

C# WebClient.DownloadStringAsync URL不工作,c#,windows-phone-8,webclient-download,C#,Windows Phone 8,Webclient Download,我对windowsphone 8上的webclient有一个问题。 我在代码中遇到了一个API使用webclient public void LoadData(bool refresh) { IsLoading = true; WebClient webclient = new WebClient(); webclient.DownloadStringCompleted += webclient_DownloadStringComp

我对windowsphone 8上的webclient有一个问题。 我在代码中遇到了一个API使用webclient

    public void LoadData(bool refresh)
    {
        IsLoading = true;
        WebClient webclient = new WebClient();
        webclient.DownloadStringCompleted += webclient_DownloadStringCompleted;
        webclient.DownloadStringAsync(new Uri("http://api.xxxx.com/getQuestion"));
    }

    public void webclient_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
    {
        RootObject deserCustomers = JsonConvert.DeserializeObject<RootObject>(e.Result);
        foreach (var cust in deserCustomers.data)
        {
            Debug.WriteLine(cust.title);
            int length = cust.question.Length;
            string subquestion;
            if (length > 100) { subquestion = cust.question.Substring(0, 100); }
            else { subquestion = cust.question; }
            _questiondata.Add(new QuestionItem() { Title = cust.title, Question_Str = subquestion, Slug = cust.slug });
        }

        IsLoading = false;
    }
public void LoadData(bool刷新)
{
IsLoading=true;
WebClient WebClient=新的WebClient();
webclient.DownloadStringCompleted+=webclient\u DownloadStringCompleted;
webclient.DownloadStringAsync(新Uri(“http://api.xxxx.com/getQuestion"));
}
public void webclient_DownloadStringCompleted已完成(对象发送方,DownloadStringCompletedEventArgs e)
{
RootObject deserCustomers=JsonConvert.DeserializeObject(e.Result);
foreach(客户数据中的var cust)
{
调试写入线(客户名称);
int length=cust.question.length;
字符串子问题;
如果(长度>100){subquestion=cust.question.Substring(0100);}
else{subquestion=cust.question;}
_添加(新的QuestionItem(){Title=cust.Title,Question_Str=subquestion,Slug=cust.Slug});
}
IsLoading=false;
}
这是第一次工作,数据与web完全相同。但是当web更新了新的问题,并且我第二次尝试调用LoadData方法时,数据与web不一样。“我的应用程序”(windows phone)中未出现新的web更新问题。 我应该怎么做,是否有缓存使我的结果不会像在web上一样更新


非常感谢

我得到了帮助,问题解决了。试试这个:

public void LoadData(bool refresh)
{
    IsLoading = true;
    WebClient webclient = new WebClient();
    webclient.DownloadStringCompleted += webclient_DownloadStringCompleted;
    Random random = new Random();
    webclient.DownloadStringAsync(new Uri("http://api.xxxx.com/getQuestion?random="+ random.Next().ToString()));
}

听起来像是缓存相关的问题。也许这篇文章可以帮助你:@PatrikEckebrecht谢谢你。我在url中添加了随机变量,它可以正常工作!:)这看起来很不错,但是仍然可能有重复的数字,因为
Random.Next()
可能会产生数千次相同的值。或者,您可以只计算一些整数变量。感谢您的关注@PatrikEckebrecht。但是缓存的位置在哪里?服务器端或客户端此缓存由操作系统完成。典型的做法是添加DateTime.Now.Ticks,以避免随机数冲突。