2011-10-15 134 views
0

好的我已經寫了一些基本的通用Web服務,但我從來沒有嘗試消費第三方。 我試圖消費的是 http://opendap.co-ops.nos.noaa.gov/axis/webservices/predictions/wsdl/Predictions.wsdlWindows Phone 7消費Web服務WSDL

我沒有得到任何結果回來,因此無論如何也找不出原因。 更奇怪的是,它甚至沒有達到PredictionsClient_getPredictionsAndMetadataCompleted,當我在代碼中插入一個斷點時,它甚至沒有達到它。 任何建議,將不勝感激

public void Bouy(double meters) 
    { 
     PredictionService.Parameters PredictionParams = new PredictionService.Parameters(); 
     PredictionService.PredictionsPortTypeClient PredictionsClient = new PredictionService.PredictionsPortTypeClient(); 

     GeoCoordinateWatcher gc = new GeoCoordinateWatcher(GeoPositionAccuracy.Default); 
     //gc.Position.Location.Latitude, gc.Position.Location.Longitude 
     GeoCoordinate myLocation = new GeoCoordinate(27.931631,-82.802582); 


     foreach (var bl in BouyLocation.GetAll()) 
     {  
      GeoCoordinate otherLocation = new GeoCoordinate(bl.Lat, bl.Lon); 

       PredictionParams.beginDate = DateTime.Now.ToString("yyyyMMdd"); 
       PredictionParams.endDate = DateTime.Now.AddDays(1.0).ToString("yyyyMMdd"); 
       PredictionParams.stationId = bl.LocationID; 
       PredictionParams.timeZone = 0; 
       PredictionParams.unit = 1; 
       PredictionParams.dataInterval = 6; 
       PredictionsClient.getPredictionsAndMetadataCompleted += new EventHandler<PredictionService.getPredictionsAndMetadataCompletedEventArgs>(PredictionsClient_getPredictionsAndMetadataCompleted); 

       PredictionsClient.getPredictionsAndMetadataAsync(PredictionParams); 


      double mymeters = myLocation.GetDistanceTo(otherLocation); 
      if (mymeters < meters) 
      { 
       TextBlock DynTextBlock = new TextBlock 
       { 
        Name = "Appearance" + bl.LocationID, 
        Text = bl.LocationName + PredictionResult, 
        TextWrapping = System.Windows.TextWrapping.Wrap, 
        Margin = new Thickness(12, -6, 12, 0), 
        Style = (Style)Resources["PhoneTextSubtleStyle"] 

       }; 

       DynamicAppearance.Children.Add(DynTextBlock); 
       this.nearByLocations.Add(new BouyLocationModel() { LocationName = bl.LocationName, LocationID = bl.LocationID, Lat = bl.Lat, Lon = bl.Lon }); 
      } 
     } 
     var test = nearByLocations; 
    } 

    void PredictionsClient_getPredictionsAndMetadataCompleted(object sender, PredictionService.getPredictionsAndMetadataCompletedEventArgs e) 
    { 
     string err = e.Error.ToString(); 

     PredictionResult = e.Result.ToString(); 
    } 
+0

嘗試用正常的控制檯應用程序消耗這個,看看問題是否是Windows Phone 7的或不。 –

回答

0

在你這裏的代碼Loooking我認爲你已經使用了一個ServiceReference自動的導入建立類的嗎?

不幸的是,我發現這對WP7來說頗爲氣質,而我實際上得到它的唯一方法是將它連接到Microsoft WCF服務。連接到其他任何東西都不起作用。

如果你做谷歌搜索有各種網頁談論它不工作的事實和方式(我無法工作)。

但是,有辦法解決它,但它不像自動生成的東西那麼簡單。基本上你手動做事情。

雖然還有其他的方式來手動創建Web服務我所做的就是按照其下面行之有效的信息:http://zetitle.wordpress.com/2010/10/14/using-reactive-extensions-with-webrequest/

你需要自己解析響應,但XML到LINQ可以很好地表現這個。

希望幫助,或者也許會有人有解決方案,因爲它是什麼,我想知道如何獲得工作太