我正在开发一个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文件中是否缺少任何库! 我无法弄清楚问题是什么。
答案 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对象非常容易。