C#和预测API

C#和预测API,c#,api,weather-api,C#,Api,Weather 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.T

我对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,考虑使用,它将节省你的理智。< /P>
var doc = new HtmlDocument();
doc.Load("https://....");

如果是JSONAPI或类似的东西,请考虑使用。这也会让你保持理智

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

祝您好运。

首先,您需要查看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,考虑使用,它将节省你的理智。< /P>
var doc = new HtmlDocument();
doc.Load("https://....");

如果是JSONAPI或类似的东西,请考虑使用。这也会让你保持理智

var doc = new HtmlDocument();
doc.Load("https://....");
祝你好运