簡體   English   中英

C#和Forecast API

[英]C# and Forecast API

我對API數據轉發完全不熟悉,並希望得到一些幫助。 這是我目前的代碼:

else if (e.KeyCode == Keys.Enter & InputTextbox.Text.Contains("hot"))
{
    try
    {
        XElement doc = XElement.Load("https://api.forecast.io/forecast/*APIKEY*/-31.4296,152.9082");
        OutputTextbox.Text = "It is currently " + doc;                                                             
        pBuilder.ClearContent();                                                                                        
        pBuilder.AppendText(OutputTextbox.Text);                                                                        
        sSynth.Speak
        pBuilder);                                                                                                             
        e.SuppressKeyPress = true;                                                                                                          
        InputTextbox.Text = "";
    }
    catch (System.Xml.XmlException fe)
    {
        MessageBox.Show(fe.Message);
    }

這會返回錯誤消息:“根級別的數據無效。第1行,位置1”。

有人可以讓我知道我哪里出錯嗎?

首先,你需要看看api調用的輸出是什么,試試:

using(var client = new WebClient()) {
    var responseStr = client.DownloadString("https://api.forecast.io/forecast/*APIKEY*/-31.4296,152.9082");
    OutputTextbox.Text = responseStr;
}

然后,要使用XElement加載此xml,它需要是完全有效的XML。 這是您的錯誤消息的來源:XElement非常嚴格。 如果響應是HTML,請考慮使用HtmlAgilityPack ,它將保存您的理智。

var doc = new HtmlDocument();
doc.Load("https://....");

如果它是json api或類似的東西,請考慮使用ServiceStack 這也將拯救你的理智。

祝好運。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM