-1

xml ファイルからノードを削除しようとしていますが、すべてうまくいきますが、xml Web ページがロードされないことがあります。これは私のコードです:

private void HttpsCompleted(object sender, DownloadStringCompletedEventArgs e)
    {
        if (e.Error == null)
        {
            XDocument xdoc = XDocument.Parse(e.Result, LoadOptions.None);
            if (e.Error == null)
            {
                XDocument doc = XDocument.Parse(e.Result, LoadOptions.None);

                    var lyric = doc.Descendants(XName.Get("Lyric", "http://api.chartlyrics.com/")).FirstOrDefault();
                    TextBlock1.Text = lyric.Value;


            }

        }
    }

    private void btnLoad_Click(object sender, RoutedEventArgs e)
    {



        WebClient wc = new WebClient();
        wc.DownloadStringCompleted += HttpsCompleted;
        wc.DownloadStringAsync(new Uri("http://api.chartlyrics.com/apiv1.asmx/SearchLyricDirect?artist=michael%20jackson&song=bad));


    }

この「間違い」を処理するために WebException を使用することを読みましたが、使用できません。誰か助けてくれませんか?

4

1 に答える 1

1

この方法を試しましたか?

    private void btnLoad_Click(object sender, RoutedEventArgs e)
    {
        try
        {

            WebClient wc = new WebClient();
            wc.DownloadStringCompleted += HttpsCompleted;
            wc.DownloadStringAsync(new Uri("http://api.chartlyrics.com/apiv1.asmx/SearchLyricDirect?artist=michael%20jackson&song=bad"));
        }
        catch (WebException ex)
        {
            // Check the exception here
        }
    }

また、ハンドラーのエラーも確認します。

private void HttpsCompleted(object sender, DownloadStringCompletedEventArgs e)
{
    if (e.Error == null)
    {
        XDocument xdoc = XDocument.Parse(e.Result, LoadOptions.None);
        if (e.Error == null)
        {
            XDocument doc = XDocument.Parse(e.Result, LoadOptions.None);

                var lyric = doc.Descendants(XName.Get("Lyric", "http://api.chartlyrics.com/")).FirstOrDefault();
                TextBlock1.Text = lyric.Value;
        }       
    }
    else
    {
        // Check for error here
    }
}

ときどきErrorを返すことに気付きました.Webブラウザからアクセスすると、結果が出る場合もありますが、多くの場合エラーになるため、問題はサーバーにあると思います.

于 2013-06-07T08:31:07.277 に答える