如何调试此 Web 客户端异常

本文关键字:Web 客户端 异常 调试 何调试 | 更新日期: 2023-09-27 18:33:36

我正在尝试使用以下代码为Android应用程序提取一个简单的RSS提要:

public async Task<IList<Episode>> PullEpisodesAsync(int page)
    {
        string xmlFeed = "";
        try
        {
            using (WebClient wc = new WebClient())
            {
                var uri = new Uri(Const.FeedEndpoint);  // http://spotlightenglish.com/feeds/appfeed/
                xmlFeed = await wc.UploadStringTaskAsync(uri, "GET", "");
            }
        }
        catch (System.Net.WebException wex)
        {
            Console.WriteLine("WebExceptionStatus: {0}", wex.StackTrace);
        }
        IList<Episode> episodes = ParseFeed(xmlFeed);
        return episodes;
    }

我得到了一个运行时异常,它没有给我太多的时间来继续:

WebExceptionStatus: at
System.Net.WebClient+c_async15.移动下一个 ((
[0x00000] 在 :0 中 --- 堆栈跟踪结束自 引发异常的上一个位置---
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw ((
[0x00000] in :0 在
System.Runtime.CompilerServices.TaskAwaiter'1[System.String].获取结果 (( [0x00000] 在 :0 在
聚焦.剧集投票者+c
_async1.移动下一个 ((
[0x000e2] 在
/用户/珍妮/工作坊/聚焦英语/元素/插曲.cs:52
[聚焦]Web 异常:执行 Web 客户端
时出错 请求。

我不在代理或防火墙后面,可以通过测试设备浏览源 URL,并在我的应用清单中指定了 Internet 访问权限。

有关如何开始调试的任何指示将不胜感激。

如何调试此 Web 客户端异常

以下带有HttpClient的代码对我有用:

using (var client = new HttpClient())
{
    var url = "http://spotlightenglish.com/feeds/appfeed/";
    client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("text/xml"));
    var msg = await client.GetAsync(url);
    if (msg.IsSuccessStatusCode)
    {
        var xml = await msg.Content.ReadAsStringAsync();
        // do whatever with xml from here
    }
}

此外,您的代码似乎有点错误。为什么要将内容上传到服务器而不是下载