2010-05-17 45 views
4

我正在開發一個Android應用程序..它將位置數據發送到Web服務存儲在服務器數據庫。傳遞參數到Web服務方法在C#

在Java: 我用這個協議,URI是:HTTP請求而不是REST

HttpPost request = new HttpPost("http://trafficmapsa.com/GService.asmx/GPSdata? lon="+Lon+"&Lat="+Lat+"&speed="+speed);  

在Asp.net(C#)的web服務將是:

[WebMethod] 
    public CountryName GPSdata(Double Lon, Double Lat, Double speed) 
{ 
String ConnStr = ConfigurationManager.ConnectionStrings["TrafficMapConnectionString"].ConnectionString; 
     SqlConnection myConnection = new SqlConnection(ConnStr); 
      SqlCommand myCommand = new SqlCommand("INSERT INTO Traffic(Longitude,Latitude,Speed,Distance,Time,MAC_Address) VALUES('" + (@Lon).ToString() + "','" + (@Lat).ToString() + "','" + (@speed).ToString())", myConnection); 


     SqlDataAdapter sadp = new SqlDataAdapter(); 
     sadp.SelectCommand = myCommand; 

     myConnection.Open(); 
     DataSet DS = new DataSet(); 


     myCommand.ExecuteNonQuery(); 


     myConnection.Close(); 

在傳遞來自android ..的數據後,沒有返回..並沒有數據庫中的數據! 在CS文件中是否有任何庫丟失! 我找不出什麼問題。

+0

你能從瀏覽器調用你的webservice嗎?如果你不能,那麼它看起來像你的web服務不接受REST GET的問題。 – 2010-05-17 18:58:45

回答

2

ASFAIK無法通過REST調用.net Web服務。因爲Web服務部署在基於HTTP的SOAP上。對於這種需求,您需要使用一些第三方庫,如KSOAP。一旦檢查這個thread

+0

從技術上講,你是不正確的。任何像樣的HTTP庫都可以用來製作SOAP請求。這是相當多的工作,沒有太多的收穫,但它可以完成。只是爲了更加迂腐,沒有像「REST電話」那樣的東西。 – 2010-05-18 00:20:42

3

如果您需要讓REST使用WCF REST而不是ASP.NET Web服務。 ASMX服務中沒有REST可能性。

+0

HTTP請求怎麼樣,是上面兼容的web服務嗎? – 2010-05-17 06:12:55

+0

REST全是關於HTTP的。請參閱此處的WCF REST概述 http://msdn.microsoft.com/en-us/netframework/dd547388.aspx – Incognito 2010-05-17 08:08:15