首页 文章

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

提问于
浏览
4

我正在开发一个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 回答

  • 2

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

  • 3

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

  • 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对象非常容易 .

相关问题