来自国家气象局 Web 服务的空响应
Empty response from National Weather Service web service
我编写了一个从国家气象局 Web 服务检索数据的过程。直到情人节之前,它一直运行良好。现在调用不断收到空响应错误。我已经联系了国家气象局,但到目前为止,他们无法提供任何建议,只是说他们最近更改为 https。我尝试使用对其 https URL 的新引用创建一个新的简单测试项目,但我仍然收到空响应错误。谁能提出解决方案?
我将网络引用设置为:
https://graphical.weather.gov/xml/DWMLgen/wsdl/ndfdXML.wsdl
这是我正在测试的代码,它仍然因空响应错误而失败:
private void cmdGo_Click(object sender, RoutedEventArgs e)
{
decimal nLatitude = (decimal)30.32;
decimal nLongitude = (decimal)-81.55;
DateTime dEndTime = DateTime.Now;
DateTime dStartTime = dEndTime.AddHours(-2);
XmlDocument oXmlDocument = GetXmlDocument(nLatitude, nLongitude, dStartTime, dEndTime);
}
private XmlDocument GetXmlDocument(decimal nLatitude, decimal nLongitude, DateTime dStartTime, DateTime dEndTime)
{
XmlDocument oXmlDocument = new XmlDocument();
try
{
gov.weather.graphical.ndfdXML oWebProxy = new gov.weather.graphical.ndfdXML();
gov.weather.graphical.productType oProductType = gov.weather.graphical.productType.timeseries;
gov.weather.graphical.unitType oUnitType = gov.weather.graphical.unitType.e;
gov.weather.graphical.weatherParametersType oWeatherParametersType = new gov.weather.graphical.weatherParametersType();
oWeatherParametersType.appt = true; // Apparent Temperature
oWeatherParametersType.icons = true; // Conditions Icons
oWeatherParametersType.dew = true; // Dew Point Temperature
oWeatherParametersType.maxt = true; // Daily Maximum Temperature
oWeatherParametersType.mint = true; // Daily Minimum Temperature - no response
oWeatherParametersType.pop12 = true; // 12 Hourly Probability of Precipitation
oWeatherParametersType.precipa_r = true; // Liquid Precipitation Amount
oWeatherParametersType.rh = true; // Relative Humidity
oWeatherParametersType.sky = true; // Cloud Cover Amount
oWeatherParametersType.snow = true; // Snow Amount
oWeatherParametersType.temp = true; // Temperature
oWeatherParametersType.wdir = true; // Wind Direction
oWeatherParametersType.wgust = true; // Wind Speed Gust
oWeatherParametersType.wspd = true; // Wind Speed
oWeatherParametersType.wwa = true; // Watches, Warnings, and Advisories
oWeatherParametersType.wx = true; // Weather Type, Coverage, and Intensity
string sXmlData = oWebProxy.NDFDgen(nLatitude, nLongitude, oProductType, dStartTime, dEndTime, oUnitType, oWeatherParametersType);
oXmlDocument.LoadXml(sXmlData);
}
catch (Exception e)
{
string sMessage = e.Message;
sMessage = "Error: " + sMessage;
}
return oXmlDocument;
}
对于 c# 网络参考,我更改了我们的参考:
http://graphical.weather.gov/xml/DWMLgen/wsdl/ndfdXML.wsdl
至:
https://graphical.weather.gov/xml/SOAP_server/ndfdXMLserver.php?wsdl
我不得不更改一些参数以调用 "string" 格式,但它返回的 xml 似乎与我使用的其他 url 格式相同.
希望对您有所帮助。
我现在的电话是:
ndfdXML.NDFDgenByDay(currentLoc.latitude, currentLoc.longitude, DateTime.Now, "7", "e", "12 hourly");
在我的地区获得 7 天。
我编写了一个从国家气象局 Web 服务检索数据的过程。直到情人节之前,它一直运行良好。现在调用不断收到空响应错误。我已经联系了国家气象局,但到目前为止,他们无法提供任何建议,只是说他们最近更改为 https。我尝试使用对其 https URL 的新引用创建一个新的简单测试项目,但我仍然收到空响应错误。谁能提出解决方案?
我将网络引用设置为:
https://graphical.weather.gov/xml/DWMLgen/wsdl/ndfdXML.wsdl
这是我正在测试的代码,它仍然因空响应错误而失败:
private void cmdGo_Click(object sender, RoutedEventArgs e)
{
decimal nLatitude = (decimal)30.32;
decimal nLongitude = (decimal)-81.55;
DateTime dEndTime = DateTime.Now;
DateTime dStartTime = dEndTime.AddHours(-2);
XmlDocument oXmlDocument = GetXmlDocument(nLatitude, nLongitude, dStartTime, dEndTime);
}
private XmlDocument GetXmlDocument(decimal nLatitude, decimal nLongitude, DateTime dStartTime, DateTime dEndTime)
{
XmlDocument oXmlDocument = new XmlDocument();
try
{
gov.weather.graphical.ndfdXML oWebProxy = new gov.weather.graphical.ndfdXML();
gov.weather.graphical.productType oProductType = gov.weather.graphical.productType.timeseries;
gov.weather.graphical.unitType oUnitType = gov.weather.graphical.unitType.e;
gov.weather.graphical.weatherParametersType oWeatherParametersType = new gov.weather.graphical.weatherParametersType();
oWeatherParametersType.appt = true; // Apparent Temperature
oWeatherParametersType.icons = true; // Conditions Icons
oWeatherParametersType.dew = true; // Dew Point Temperature
oWeatherParametersType.maxt = true; // Daily Maximum Temperature
oWeatherParametersType.mint = true; // Daily Minimum Temperature - no response
oWeatherParametersType.pop12 = true; // 12 Hourly Probability of Precipitation
oWeatherParametersType.precipa_r = true; // Liquid Precipitation Amount
oWeatherParametersType.rh = true; // Relative Humidity
oWeatherParametersType.sky = true; // Cloud Cover Amount
oWeatherParametersType.snow = true; // Snow Amount
oWeatherParametersType.temp = true; // Temperature
oWeatherParametersType.wdir = true; // Wind Direction
oWeatherParametersType.wgust = true; // Wind Speed Gust
oWeatherParametersType.wspd = true; // Wind Speed
oWeatherParametersType.wwa = true; // Watches, Warnings, and Advisories
oWeatherParametersType.wx = true; // Weather Type, Coverage, and Intensity
string sXmlData = oWebProxy.NDFDgen(nLatitude, nLongitude, oProductType, dStartTime, dEndTime, oUnitType, oWeatherParametersType);
oXmlDocument.LoadXml(sXmlData);
}
catch (Exception e)
{
string sMessage = e.Message;
sMessage = "Error: " + sMessage;
}
return oXmlDocument;
}
对于 c# 网络参考,我更改了我们的参考:
http://graphical.weather.gov/xml/DWMLgen/wsdl/ndfdXML.wsdl
至:
https://graphical.weather.gov/xml/SOAP_server/ndfdXMLserver.php?wsdl
我不得不更改一些参数以调用 "string" 格式,但它返回的 xml 似乎与我使用的其他 url 格式相同.
希望对您有所帮助。
我现在的电话是:
ndfdXML.NDFDgenByDay(currentLoc.latitude, currentLoc.longitude, DateTime.Now, "7", "e", "12 hourly");
在我的地区获得 7 天。