0

请在我的问题上需要帮助!

我有以下链接;它存储了特定的数字(数据),我将在我的 Windows Phone 应用程序中使用它。 http://jaradat.eb2a.com/read.php

我如何读取链接中存储的最新数字(这个数字会改变);并将其显示在我的 Windows Phone 应用程序中。

我应该使用 webclient 来访问 url 中的数据,如下所示?

 WebClient wc = new WebClient();
            wc.DownloadStringCompleted += HttpCompleted;
            wc.DownloadStringAsync(new Uri("http://jaradat.eb2a.com/read.php"));

 private void HttpCompleted(object sender, DownloadStringCompletedEventArgs e)
    {
        if (e.Error == null)
        {


            // do something  here
        }

以及如何读取链接中的最新值?应该把它分成代币吗?

4

2 回答 2

2

您在问题中指出的方法对于从链接中检索数据是正确的。尽管还有其他方法可以做到这一点。
如果您想进一步了解,这里有一些参考资料。 在 Windows Phone HttpWebRequest 基础知识 - Windows Phone 服务消耗 - 第 1 部分
中发出 HTTP 请求并监听其完成 HttpWebRequest 基础 - Windows Phone 服务消耗 - 第 2 部分

您的问题似乎是关于如何检索响应中的最后一个值。尝试这个...

private void HttpCompleted(object sender, DownloadStringCompletedEventArgs e)
{
    if (e.Error == null)
    {
       //this will break the string into two tokens
        string[] first_lot = e.Result.Split('"');

        //assuming you want to read the first lot first_lot[0].Split(','); 
        // seccond lot  first_lot[1].Split(',');
        string[] numbers = first_lot[0].Split(',');

        int last_digit = int.Parse(numbers[numbers.Length - 1]);

    }
}

观察

  1. 如果可能,调整服务器代码以仅返回一位数字。它将为应用程序用户节省大量的数据成本。
  2. 考虑使用 JSON 数据格式作为服务器端代码的响应格式。
于 2013-04-12T11:44:57.993 回答
0

去做就对了

        WebClientwc = new WebClient();
        wc.DownloadStringCompleted += HttpCompleted;
        wc.DownloadStringAsync(new Uri("http://jaradat.eb2a.com/read.php"));

    private void HttpCompleted(object sender, DownloadStringCompletedEventArgs e)
    {
        if (e.Error == null)
        {
            var resultString = e.Result;
            var parts = resultString.Split('"').Select(n => n).ToArray();
            int[] resultIntArrayFirst = parts[1].Split(',').Select(n => Convert.ToInt32(n)).ToArray();
            double [] resultIntArraySecond = parts[3].Split(',').Select(Convert.ToDouble).ToArray();
             double lastValue = resultIntArraySecond[resultIntArraySecond.Length - 1];
        }
    }

希望它的帮助。

于 2013-04-12T11:17:46.740 回答