【问题标题】:How to print response that returns from a web service如何打印从 Web 服务返回的响应
【发布时间】:2014-09-11 14:59:17
【问题描述】:

我是使用网络服务的新手,并试图了解它们的结构、它们的工作原理等。我从网络上找到了这个例子。其实我明白它的作用。我想改进这个例子。我想要做的是打印从该服务返回但不知道该怎么做的所有值。任何指南或建议都会被采纳。

public void GetFeeds()
{
    WebClient wcXML = new WebClient();
    wcXML.OpenReadAsync(new Uri("http://cloud.tfl.gov.uk/TrackerNet/LineStatus"));
    wcXML.OpenReadCompleted += new OpenReadCompletedEventHandler(wClientUpdate);
}

/// <summary>        
/// Web Client Update Read Complete Event        
/// </summary>        
/// <param name="sender"></param>        
/// <param name="e"></param>        
void wClientUpdate(object sender, OpenReadCompletedEventArgs e)
{
    if (e.Error == null)
    {
        try
        {
            Stream Resultstream = e.Result;
            XmlReader reader = XmlReader.Create(Resultstream);
            XDocument xDocumentLive = XDocument.Load(reader);
            XNamespace ns = "http://webservices.lul.co.uk/";
            List<Feed> feedList = new List<Feed>();
            feedList.AddRange((from query in xDocumentLive.Element(ns + "ArrayOfLineStatus").Elements(ns + "LineStatus")
                           select new Feed
                           {
                               Name = (string)query.Element(ns + "Line").Attribute("Name").Value,
                               Description = (string)query.Element(ns + "Status").Attribute("Description").Value,
                               isActive = (string)query.Element(ns + "Status").Attribute("IsActive").Value
                           }).ToList());
        }
        catch (Exception ex)
        {
        }
    }

【问题讨论】:

  • 打印在哪里?请更具体
  • @YuvalItzchakov 到控制台
  • 您要打印List&lt;Feed&gt;
  • @YuvalItzchakov 是的,完全正确。

标签: c# xml web-services xml-parsing linq-to-xml


【解决方案1】:

要将List&lt;Feed&gt; 打印到您的Output Window,只需使用foreach 对其进行迭代:

foreach (var feed in feedList)
{
   Debug.WriteLine("Name: {0}, Description: {1}, IsActive: {2}", feed.Name, feed.Description, feed.isActive)
}

【讨论】:

  • 我知道我可以使用 foreach,我的问题是访问该 feedList
  • 为什么会出现问题?我不确定我是否了解您的需求
  • 您知道将这个 foreach 代码放在哪里以便查看输出吗?这就是问题所在。
  • 是的,在 wClientUpdate 方法中。为什么不使用 Visual Studio 调试器查看添加到列表中的值?
  • 我已经尝试过了,但是我在控制台上看不到任何输出。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-16
相关资源
最近更新 更多