2017-02-20 30 views
0

我寫了一個從國家氣象局web服務檢索數據的過程。在情人節之前,它一直工作好幾年。現在這個調用一直在收到一個空的響應錯誤。我已經聯繫了國家氣象局,他們迄今還沒有能夠提供任何建議,除非說他們最近更改爲https。我試着創建一個新的簡單測試項目,並在其中添加對https URL的新引用,但仍然收到空的響應錯誤。任何人都可以提出解決方案國家氣象局web服務的空迴應

我設定的Web引用:

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; 
    } 

回答

3

爲C#Web引用我改變我們從:

http://graphical.weather.gov/xml/DWMLgen/wsdl/ndfdXML.wsdl

到:

https://graphical.weather.gov/xml/SOAP_server/ndfdXMLserver.php?wsdl

我不得不改變一些參數的我的電話,以「串」格式,但它返回的XML似乎是在相同的格式爲我所用的其他網址。

希望這會有所幫助。

我的電話現在:

ndfdXML.NDFDgenByDay(currentLoc.latitude, currentLoc.longitude, DateTime.Now, "7", "e", "12 hourly"); 

爲了讓7天在我的領域。

+0

非常感謝。該新網址也適用於我。你是怎麼找到的?我用他們的技術支持交換了電子郵件,我沒有與他們一起。 –

+0

我一直在搜索,並以某種方式來到這裏:https://graphical.weather.gov/xml/SOAP_server/ndfdXMLserver.php 從那裏我點擊鏈接「查看服務的WSDL」。 打開xml查看後,我查看了瀏覽器URL中的地址,並認爲我會試試看。 – justiz33

+0

優秀的調查。我會盡力記住這種方法。 –