将参数传递给c#中的web服务方法

时间:2010-05-17 05:35:11

标签: c# android rest web-services methods

我正在开发一个Android应用程序..它将位置数据发送到Web服务以存储在服务器数据库中。

在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文件中是否缺少任何库! 我无法弄清楚问题是什么。

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

ASFAIK无法通过REST调用.net Web服务。因为Web服务部署在SOAP over HTTP上。对于这种要求,您需要使用一些第三方库,如KSOAP。检查一下thread

答案 2 :(得分:1)

也许最简单的解决方案是在Web服务上启用JSON。基本上它只是在Web配置文件中进行了一些更改。看看这里:http://www.codegain.com/articles/aspnet/howto/prepare-a-json-web-service-and-access-it-with-jquery.aspx。代码示例用于jquery,但从android创建json对象非常容易。