ASP.Net WebService程序代码:VS2008
using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Web;
 using System.Web.Services;
 using System.Data;
 using System.Data.SqlClient;namespace RepairWebService
 {
     /// <summary>
     /// WebService 的摘要说明
     /// </summary>
     [WebService(Namespace = "http://tempuri.org/")]
     [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
     [System.ComponentModel.ToolboxItem(false)]
     // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
     [System.Web.Script.Services.ScriptService]
     public class WebService : System.Web.Services.WebService
     {
         /// <summary>
         /// 数据库连接字符串
         /// </summary>
         public string connstr = SqlHelper.ConnectionStringLocalTransaction;
        
         [WebMethod]
         public string HelloWorld()
         {
             return "Hello World";
         }
         [WebMethod]
         public UsersModel GetPwdByName(string name) 
         {
             UsersModel model = null;
             string strsql = "select * from users where name='"+name+"'";
             SqlDataReader dr=SqlHelper.ExecuteReader(connstr, CommandType.Text, strsql, null);
             if (dr.Read()) 
             {
                 model = new UsersModel();
                 model.Id = dr.GetInt32(0);
                 model.Name = dr.GetString(1);
                 model.Pwd = dr.GetString(2);
             }
             return model;
         }
       
         [WebMethod]
         public List<RepairsModel> GetRepairsList() 
         {
             List<RepairsModel> list = new List<RepairsModel>();
             string str = "select * from repairs";
             SqlDataReader dr = SqlHelper.ExecuteReader(connstr, CommandType.Text, str, null);
             while (dr.Read()) 
             {
                 RepairsModel model = new RepairsModel();
                 model.Id = dr.GetInt32(0);
                 model.RepairId = dr.GetString(1);
                 model.RepairName = dr.GetString(2);
                 model.RepairDate = dr.GetDateTime(3);
                 model.RepairStateId = dr.GetInt32(4);
                 model.UserId = dr.GetInt32(5);
                 list.Add(model);
             }
             return list;
         }
     }
 }Users实体类
using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Web;

 namespace RepairWebService
 {
     public class UsersModel
     {
         private int id;

         public int Id
         {
             get { return id; }
             set { id = value; }
         }
         private string name;

         public string Name
         {
             get { return name; }
             set { name = value; }
         }
         private string pwd;

         public string Pwd
         {
             get { return pwd; }
             set { pwd = value; }
         }
     }
 }Repairs实体类
using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Web;

 namespace RepairWebService
 {
     public class RepairsModel
     {
         private int id;

         public int Id
         {
             get { return id; }
             set { id = value; }
         }         private string repairName;

         public string RepairName
         {
             get { return repairName; }
             set { repairName = value; }
         }
     }
 }

 SqlHelper类using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Web;
 using System.Data.SqlClient;
 using System.Data;
 using System.Collections;
 using System.Configuration;

 namespace RepairWebService
 {
     public class SqlHelper
     {
          //获取数据库连接字符串,其属于静态变量且只读,项目中所有文档可以直接使用,但不能修改
         public static readonly string ConnectionStringLocalTransaction = ConfigurationManager.ConnectionStrings[1].ConnectionString;
         

         // 哈希表用来存储缓存的参数信息,哈希表可以存储任意类型的参数。
         private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable());

         /// <summary>
         ///执行一个不需要返回值的SqlCommand命令,通过指定专用的连接字符串。
         /// 使用参数数组形式提供参数列表 
         /// </summary>
         /// <remarks>
         /// 使用示例:
         ///  int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
         /// </remarks>
         /// <param name="connectionString">一个有效的数据库连接字符串</param>
         /// <param name="commandType">SqlCommand命令类型 (存储过程, T-SQL语句, 等等。)</param>
         /// <param name="commandText">存储过程的名字或者 T-SQL 语句</param>
         /// <param name="commandParameters">以数组形式提供SqlCommand命令中用到的参数列表</param>
         /// <returns>返回一个数值表示此SqlCommand命令执行后影响的行数</returns>
         public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
         {

             SqlCommand cmd = new SqlCommand();

             using (SqlConnection conn = new SqlConnection(connectionString))
             {
                 //通过PrePareCommand方法将参数逐个加入到SqlCommand的参数集合中
                 PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
                 int val = cmd.ExecuteNonQuery();

                 //清空SqlCommand中的参数列表
                 cmd.Parameters.Clear();
                 return val;
             }
         }

         /// <summary>
         ///执行一条不返回结果的SqlCommand,通过一个已经存在的数据库连接 
         /// 使用参数数组提供参数
         /// </summary>
         /// <remarks>
         /// 使用示例:  
         ///  int result = ExecuteNonQuery(conn, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
         /// </remarks>
         /// <param name="conn">一个现有的数据库连接</param>
         /// <param name="commandType">SqlCommand命令类型 (存储过程, T-SQL语句, 等等。)</param>
         /// <param name="commandText">存储过程的名字或者 T-SQL 语句</param>
         /// <param name="commandParameters">以数组形式提供SqlCommand命令中用到的参数列表</param>
         /// <returns>返回一个数值表示此SqlCommand命令执行后影响的行数</returns>
         public static int ExecuteNonQuery(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
         {

             SqlCommand cmd = new SqlCommand();

             PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
             int val = cmd.ExecuteNonQuery();
             cmd.Parameters.Clear();
             return val;
         }

         /// <summary>
         /// 执行一条不返回结果的SqlCommand,通过一个已经存在的数据库事物处理 
         /// 使用参数数组提供参数
         /// </summary>
         /// <remarks>
         /// 使用示例: 
         ///  int result = ExecuteNonQuery(trans, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
         /// </remarks>
         /// <param name="trans">一个存在的 sql 事物处理</param>
         /// <param name="commandType">SqlCommand命令类型 (存储过程, T-SQL语句, 等等。)</param>
         /// <param name="commandText">存储过程的名字或者 T-SQL 语句</param>
         /// <param name="commandParameters">以数组形式提供SqlCommand命令中用到的参数列表</param>
         /// <returns>返回一个数值表示此SqlCommand命令执行后影响的行数</returns>
         public static int ExecuteNonQuery(SqlTransaction trans, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
         {
             SqlCommand cmd = new SqlCommand();
             PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters);
             int val = cmd.ExecuteNonQuery();
             cmd.Parameters.Clear();
             return val;
         }

         /// <summary>
         /// 执行一条返回结果集的SqlCommand命令,通过专用的连接字符串。
         /// 使用参数数组提供参数
         /// </summary>
         /// <remarks>
         /// 使用示例:  
         ///  SqlDataReader r = ExecuteReader(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
         /// </remarks>
         /// <param name="connectionString">一个有效的数据库连接字符串</param>
         /// <param name="commandType">SqlCommand命令类型 (存储过程, T-SQL语句, 等等。)</param>
         /// <param name="commandText">存储过程的名字或者 T-SQL 语句</param>
         /// <param name="commandParameters">以数组形式提供SqlCommand命令中用到的参数列表</param>
         /// <returns>返回一个包含结果的SqlDataReader</returns>
         public static SqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
         {
             SqlCommand cmd = new SqlCommand();
             SqlConnection conn = new SqlConnection(connectionString);

             // 在这里使用try/catch处理是因为如果方法出现异常,则SqlDataReader就不存在,
             //CommandBehavior.CloseConnection的语句就不会执行,触发的异常由catch捕获。
             //关闭数据库连接,并通过throw再次引发捕捉到的异常。
             try
             {
                 PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
                 SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                 cmd.Parameters.Clear();
                 return rdr;
             }
             catch
             {
                 conn.Close();
                 throw;
             }
         }

         /// <summary>
         /// 执行一条返回第一条记录第一列的SqlCommand命令,通过专用的连接字符串。 
         /// 使用参数数组提供参数
         /// </summary>
         /// <remarks>
         /// 使用示例:  
         ///  Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
         /// </remarks>
         /// <param name="connectionString">一个有效的数据库连接字符串</param>
         /// <param name="commandType">SqlCommand命令类型 (存储过程, T-SQL语句, 等等。)</param>
         /// <param name="commandText">存储过程的名字或者 T-SQL 语句</param>
         /// <param name="commandParameters">以数组形式提供SqlCommand命令中用到的参数列表</param>
         /// <returns>返回一个object类型的数据,可以通过 Convert.To{Type}方法转换类型</returns>
         public static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
         {
             SqlCommand cmd = new SqlCommand();

             using (SqlConnection connection = new SqlConnection(connectionString))
             {
                 PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
                 object val = cmd.ExecuteScalar();
                 cmd.Parameters.Clear();
                 return val;
             }
         }

         /// <summary>
         /// 执行一条返回第一条记录第一列的SqlCommand命令,通过已经存在的数据库连接。
         /// 使用参数数组提供参数
         /// </summary>
         /// <remarks>
         /// 使用示例: 
         ///  Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
         /// </remarks>
         /// <param name="conn">一个已经存在的数据库连接</param>
         /// <param name="commandType">SqlCommand命令类型 (存储过程, T-SQL语句, 等等。)</param>
         /// <param name="commandText">存储过程的名字或者 T-SQL 语句</param>
         /// <param name="commandParameters">以数组形式提供SqlCommand命令中用到的参数列表</param>
         /// <returns>返回一个object类型的数据,可以通过 Convert.To{Type}方法转换类型</returns>
         public static object ExecuteScalar(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
         {

             SqlCommand cmd = new SqlCommand();

             PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
             object val = cmd.ExecuteScalar();
             cmd.Parameters.Clear();
             return val;
         }
         /// <summary>
         /// 缓存参数数组
         /// </summary>
         /// <param name="cacheKey">参数缓存的键值</param>
         /// <param name="cmdParms">被缓存的参数列表</param>
         public static void CacheParameters(string cacheKey, params SqlParameter[] commandParameters)
         {
             parmCache[cacheKey] = commandParameters;
         }

         /// <summary>
         /// 获取被缓存的参数
         /// </summary>
         /// <param name="cacheKey">用于查找参数的KEY值</param>
         /// <returns>返回缓存的参数数组</returns>
         public static SqlParameter[] GetCachedParameters(string cacheKey)
         {
             SqlParameter[] cachedParms = (SqlParameter[])parmCache[cacheKey];

             if (cachedParms == null)
                 return null;

             //新建一个参数的克隆列表
             SqlParameter[] clonedParms = new SqlParameter[cachedParms.Length];

             //通过循环为克隆参数列表赋值
             for (int i = 0, j = cachedParms.Length; i < j; i++)
                 //使用clone方法复制参数列表中的参数
                 clonedParms[i] = (SqlParameter)((ICloneable)cachedParms[i]).Clone();

             return clonedParms;
         }

         /// <summary>
         /// 为执行命令准备参数
         /// </summary>
         /// <param name="cmd">SqlCommand 命令</param>
         /// <param name="conn">已经存在的数据库连接</param>
         /// <param name="trans">数据库事物处理</param>
         /// <param name="cmdType">SqlCommand命令类型 (存储过程, T-SQL语句, 等等。)</param>
         /// <param name="cmdText">Command text,T-SQL语句 例如 Select * from Products</param>
         /// <param name="cmdParms">返回带参数的命令</param>
         private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms)
         {

             //判断数据库连接状态
             if (conn.State != ConnectionState.Open)
                 conn.Open();

             cmd.Connection = conn;
             cmd.CommandText = cmdText;

             //判断是否需要事物处理
             if (trans != null)
                 cmd.Transaction = trans;

             cmd.CommandType = cmdType;

             if (cmdParms != null)
             {
                 foreach (SqlParameter parm in cmdParms)
                     cmd.Parameters.Add(parm);
             }
         }
     }
 }

 web.config文件<?xml version="1.0"?>
 <configuration>
     <configSections>
         <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
             <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
                 <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
                 <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
                     <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>
                     <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
                     <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
                     <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
                 </sectionGroup>
             </sectionGroup>
         </sectionGroup>
     </configSections>
     <appSettings/>
     <connectionStrings>
         <add name="connstr" connectionString="Server=localhost;Database=test;Uid=sa;Pwd=!q2w3e4r5t;"/>
     </connectionStrings>
     <system.web>
         <!-- 
             设置 compilation debug="true" 可将调试符号插入
             已编译的页面中。但由于这会 
             影响性能,因此只在开发过程中将此值 
             设置为 true。
         -->
         <compilation debug="true">
             <assemblies>
                 <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
                 <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
                 <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
                 <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
             </assemblies>
         </compilation>
         <!--
             通过 <authentication> 节可以配置 ASP.NET 用来 
             识别进入用户的
             安全身份验证模式。 
         -->
         <authentication mode="Windows"/>
         <!--
             如果在执行请求的过程中出现未处理的错误,
             则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
             开发人员通过该节可以配置
             要显示的 html 错误页
             以代替错误堆栈跟踪。

         <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
             <error statusCode="403" redirect="NoAccess.htm" />
             <error statusCode="404" redirect="FileNotFound.htm" />
         </customErrors>
         -->
         <pages>
             <controls>
                 <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
                 <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
             </controls>
         </pages>
         <httpHandlers>
             <remove verb="*" path="*.asmx"/>
             <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
             <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
             <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
         </httpHandlers>
         <httpModules>
             <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
         </httpModules>
     </system.web>
     <system.codedom>
         <compilers>
             <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
                 <providerOption name="CompilerVersion" value="v3.5"/>
                 <providerOption name="WarnAsError" value="false"/>
             </compiler>
         </compilers>
     </system.codedom>
     <!-- 
         在 Internet 信息服务 7.0 下运行 ASP.NET AJAX 需要 system.webServer
         节。对早期版本的 IIS 来说则不需要此节。
     -->
     <system.webServer>
         <validation validateIntegratedModeConfiguration="false"/>
         <modules>
             <remove name="ScriptModule"/>
             <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
         </modules>
         <handlers>
             <remove name="WebServiceHandlerFactory-Integrated"/>
             <remove name="ScriptHandlerFactory"/>
             <remove name="ScriptHandlerFactoryAppServices"/>
             <remove name="ScriptResource"/>
             <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
             <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
             <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
         </handlers>
     </system.webServer>
     <runtime>
         <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
             <dependentAssembly>
                 <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
                 <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
             </dependentAssembly>
             <dependentAssembly>
                 <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
                 <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
             </dependentAssembly>
         </assemblyBinding>
     </runtime>
 </configuration>

 Android客户端程序:1、调用HelloWorld方法
页面:
<?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:orientation="vertical" >

     <TextView
         android:id="@+id/lblShow"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:text="@string/hello" />
     <Button
         android:id="@+id/btnSave"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="确定">
         
     </Button>
     <EditText 
         android:id="@+id/txtName"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"  />
     <Button
         android:id="@+id/btnName"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="ShowName" >
         
         
     </Button>
     

 </LinearLayout>代码:
package com.awcf;

 import java.io.BufferedReader;

 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.util.ArrayList;
 import java.util.List;

 import org.apache.http.HttpEntity;
 import org.apache.http.HttpResponse;
 import org.apache.http.NameValuePair;
 import org.apache.http.client.ClientProtocolException;
 import org.apache.http.client.entity.UrlEncodedFormEntity;
 import org.apache.http.client.methods.HttpGet;
 import org.apache.http.client.methods.HttpPost;
 import org.apache.http.entity.StringEntity;
 import org.apache.http.impl.client.DefaultHttpClient;
 import org.apache.http.message.BasicNameValuePair;
 import org.apache.http.params.BasicHttpParams;
 import org.apache.http.params.HttpParams;
 import org.apache.http.protocol.HTTP;
 import org.apache.http.util.EntityUtils;
 import org.json.JSONArray;
 import org.json.JSONException;
 import org.json.JSONObject;

 import com.google.gson.Gson;

 import android.app.Activity;

 import android.os.Bundle;
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.widget.*;

 public class AwcfActivity extends Activity {
     private TextView lblShow;
     private Button btnSave;
     private EditText txtName;
     private Button btnName;
     /** Called when the activity is first created. */
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.main);
         lblShow=(TextView)findViewById(R.id.lblShow);
         btnSave=(Button)findViewById(R.id.btnSave);
         btnSave.setOnClickListener(new MyBtnListener());
         txtName = (EditText)findViewById(R.id.txtName);
         
         btnName=(Button)findViewById(R.id.btnName);
         btnName.setOnClickListener(new MyBtnNameListener());
         
     }
     class MyBtnNameListener implements OnClickListener{

         @Override
         public void onClick(View arg0) {
             // TODO Auto-generated method stub
             DefaultHttpClient client=new DefaultHttpClient();
             
             HttpPost requestget=new HttpPost("http://10.0.2.2:44625/WebService.asmx/GetPwdByName");
             requestget.setHeader("Accept", "application/json");
             requestget.addHeader("Content-Type", "application/json; charset=utf-8");
             JSONObject jsonParams=new JSONObject(); 
             try {
                 jsonParams.put("name",txtName.getText().toString());
                 jsonParams.put("pwd", "");
                 HttpEntity bodyEntity=new StringEntity(jsonParams.toString(),"utf8");
                 requestget.setEntity(bodyEntity);
                 HttpResponse responsepost = client.execute(requestget);
                 if(responsepost.getStatusLine().getStatusCode()==200){
                     String result=EntityUtils.toString(responsepost.getEntity());
                     JSONObject resultobj=new JSONObject(result.toString());
                     lblShow.setText(resultobj.get("d").toString());
                 }else{
                     lblShow.setText("Name");
                 }
             } catch (Exception e) {
                 // TODO Auto-generated catch block
                 e.printStackTrace();
             }
             
         }
         
     }
     class MyBtnListener implements OnClickListener{

         @Override
         public void onClick(View v) {
             Gson gson=new Gson();
             
             // TODO Auto-generated method stub
             DefaultHttpClient client=new DefaultHttpClient();
             
             HttpPost requestget=new HttpPost("http://10.0.2.2:44625/WebService.asmx/Helloworld");
             requestget.addHeader("Content-Type", "application/json; charset=utf-8");

             try {
                 HttpResponse responseget=client.execute(requestget);
                 if(responseget.getStatusLine().getStatusCode()==200){
                     String strresponse= EntityUtils.toString(responseget.getEntity());
                     JSONObject jsonObject = new JSONObject(strresponse.toString());
                     lblShow.setText(jsonObject.getString("d"));
                 }else{
                     lblShow.setText("数据错误");
                 }
             } catch (Exception e) {
                 // TODO Auto-generated catch block
                 e.printStackTrace();
             }finally{
                 
             }
         }
         
     }
 }2、调用GetPwdByName方法
页面:
<?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:orientation="vertical" >

     <TextView
         android:id="@+id/lblShow"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:text="@string/hello" />
     <Button
         android:id="@+id/btnSave"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="确定">
         
     </Button>
     <EditText 
         android:id="@+id/txtName"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"  />
     <Button
         android:id="@+id/btnName"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="ShowName" >
         
         
     </Button>
     

 </LinearLayout>代码:
package com.repair;

 import java.io.IOException;

 import java.io.BufferedReader;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.OutputStream;

 import org.apache.http.HttpEntity;
 import org.apache.http.HttpResponse;
 import org.apache.http.client.ClientProtocolException;
 import org.apache.http.client.methods.HttpGet;
 import org.apache.http.client.methods.HttpPost;
 import org.apache.http.entity.StringEntity;
 import org.apache.http.impl.client.DefaultHttpClient;
 import org.apache.http.util.EntityUtils;
 import org.json.JSONArray;
 import org.json.JSONObject;
 import org.json.JSONStringer;

 import android.app.Activity;
 import android.content.Intent;
 import android.os.Bundle;
 import android.util.Log;
 import android.view.Menu;
 import android.view.MenuItem;
 import android.view.MenuItem.OnMenuItemClickListener;
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.widget.*;

 public class DefaultActivity extends Activity {
     private Button btnLogin;
     private EditText txtUserName;
     private EditText txtPwd;
     private Button btnRegister;
     private String connstr = "http://10.0.2.2:44625/WebService.asmx";

     /** Called when the activity is first created. */
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.main);
         btnLogin = (Button) findViewById(R.id.btnLogin);
         txtUserName = (EditText) findViewById(R.id.txtUserName);
         txtPwd = (EditText) findViewById(R.id.txtPwd);
         btnLogin.setOnClickListener(new MybtnLoginListener());
         btnRegister = (Button) findViewById(R.id.btnRegister);
         btnRegister.setOnClickListener(new MybtnRegisterListener());
     }

     @Override
     public void onResume() {
         super.onResume();
     }

     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
         // TODO Auto-generated method stub
         if (item.getItemId() == 1) {
             finish();
         } else if (item.getItemId() == 2) {
             item.setOnMenuItemClickListener(new MyitemAboutListener());
         }
         return super.onOptionsItemSelected(item);
     }

     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
         // TODO Auto-generated method stub
         menu.add(0, 1, 1, R.string.Exit);
         menu.add(0, 2, 2, R.string.About);
         return super.onCreateOptionsMenu(menu);
     }

     // 登录按钮监听事件
     class MybtnLoginListener implements OnClickListener {
         @Override
         public void onClick(View v) {
             // TODO Auto-generated method stub
             HttpPost request = new HttpPost(connstr + "/GetPwdByName");
             request.setHeader("Accept", "application/json");
             request.addHeader("Content-Type", "application/json; charset=utf-8");
             JSONObject jsonParams = new JSONObject();
             try {
                 jsonParams.put("name", txtUserName.getText().toString().trim());
                 // jsonParams.put("pwd",txtPwd.getText().toString().trim());
                 HttpEntity bodyEntity = new StringEntity(jsonParams.toString(),
                         "utf8");
                 request.setEntity(bodyEntity);
                 DefaultHttpClient client = new DefaultHttpClient();
                 HttpResponse responsepost = client.execute(request);
                 if (responsepost.getStatusLine().getStatusCode() == 200) {
                     String result = EntityUtils.toString(responsepost
                             .getEntity());
                     JSONObject resultobj = new JSONObject(result)
                             .getJSONObject("d");
                     String pwd = resultobj.getString("Pwd");
                     if (pwd.trim().equals( txtPwd.getText().toString().trim())) {
                         // 登录
                         int id = resultobj.getInt("Id");
                         Intent intent = new Intent();
                         intent.setClass(DefaultActivity.this,
                                 MainActivity.class);
                         intent.putExtra("UserName", txtUserName.getText()
                                 .toString());
                         intent.putExtra("id", id);
                         DefaultActivity.this.startActivity(intent);
                     } else {
                        
                     }
                 } else {
                    
                 }
             } catch (Exception e) {
                
             }
         }
     }

     // 退出按钮监听事件
     class MybtnRegisterListener implements OnClickListener {
         @Override
         public void onClick(View v) {
             // 程序退出
             Intent intent = new Intent();
             intent.setClass(DefaultActivity.this, RegisterActivity.class);
             intent.putExtra("UserName", txtUserName.getText().toString());
             DefaultActivity.this.startActivity(intent);
         }
     }

     class MyitemAboutListener implements OnMenuItemClickListener {

         @Override
         public boolean onMenuItemClick(MenuItem arg0) {
             // TODO Auto-generated method stub
             finish();
             return false;
         }

     }
 }3、调用GetRepairsList方法
页面:
<?xml version="1.0" encoding="utf-8"?>
 <AbsoluteLayout
 android:id="@+id/mainactivity"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 xmlns:android="http://schemas.android.com/apk/res/android"
 >


     <TableLayout
         android:id="@+id/tableLayout1"
         android:layout_width="fill_parent"
         android:layout_height="334dp"
         android:layout_x="0dp"
         android:layout_y="2dp"
         android:gravity="center_horizontal" >

         <TableRow
             android:id="@+id/tableRow1"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content" >
             <TextView
                 android:id="@+id/lblRepairName"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:text="@string/RepairName" 
                 android:textColor="#ffffff"/>

             <Spinner
                 android:id="@+id/spRepairList"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content" />

         </TableRow>

         <TableRow
             android:id="@+id/tableRow2"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content" >
             <TextView
                 android:id="@+id/lblStateName"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:text="@string/StateName" 
                 android:textColor="#ffffff"/>

             <Spinner
                 android:id="@+id/spStateList"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content" />

         </TableRow>

         <TableRow
             android:id="@+id/tableRow3"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content" >
              <TextView
                 android:id="@+id/lblUserName"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:text="@string/UserName" 
                 android:textColor="#ffffff"/>
             <TextView
                 android:id="@+id/txtUserName"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:textColor="#ffffff" >
             </TextView>

         </TableRow>

         <TableRow
             android:id="@+id/tableRow4"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content" >
             <Button 
                 android:id="@+id/btnSave"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:text="@string/Save" 
                 android:textColor="#ffffff" />
             <Button 
                 android:id="@+id/btnCancle"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:text="@string/Cancle"
                 android:textColor="#ffffff" />
         </TableRow>
     </TableLayout>

 </AbsoluteLayout>代码:
package com.repair;

 import java.io.IOException;

 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;

 import org.apache.http.HttpEntity;
 import org.apache.http.HttpResponse;
 import org.apache.http.client.ClientProtocolException;
 import org.apache.http.client.methods.HttpPost;
 import org.apache.http.entity.StringEntity;
 import org.apache.http.impl.client.DefaultHttpClient;
 import org.apache.http.util.EntityUtils;
 import org.json.JSONArray;
 import org.json.JSONObject;

 import android.app.*;
 import android.content.Intent;
 import android.os.Bundle;
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.widget.*;
 import android.widget.AdapterView.OnItemSelectedListener;

 public class MainActivity extends Activity {
     private TextView txtUserName;
     private int UserId;
     private int RepairId;
     private Spinner spRepairList;
     private String connstr = "http://10.0.2.2:44625/WebService.asmx";

     /*
      * (non-Javadoc)
      * 
      * @see android.app.Activity#onCreate(android.os.Bundle)
      */
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.mainactivity);
         txtUserName = (TextView) findViewById(R.id.txtUserName);
         txtUserName.setText(getUserName());
         spRepairList = (Spinner) findViewById(R.id.spRepairList);
         getRepairsList();
     }

     private String getUserName() {
         String UserName = "";
         Intent intent = getIntent();
         UserName = intent.getStringExtra("UserName");
         return UserName;
     }

     //UserID
     private int getId() {
         Intent intent = getIntent();
         UserId = intent.getIntExtra("id", 0);
         return UserId;
     }

     private void getRepairsList() {
         HttpPost request = new HttpPost(connstr + "/GetRepairsList");
         request.setHeader("Accept", "application/json");
         request.addHeader("Content-Type", "application/json; charset=utf-8");
         DefaultHttpClient client = new DefaultHttpClient();
         HttpResponse responsepost;
         try {
             responsepost = client.execute(request);
             if (responsepost.getStatusLine().getStatusCode() == 200) {
                 String result = EntityUtils.toString(responsepost.getEntity());
                 JSONArray array = new JSONObject(result).getJSONArray("d");
                 List<RepairsModel> list = new ArrayList<RepairsModel>();
                 for (int i = 0; i < array.length(); i++) {
                     JSONObject obj = (JSONObject) array.get(i);
                     RepairsModel model = new RepairsModel(obj.getInt("Id"),
                             obj.getString("RepairName"));
                     list.add(model);
                 }
                 ArrayAdapter<RepairsModel> adapter = new ArrayAdapter<RepairsModel>(
                         this, android.R.layout.simple_spinner_item, list);
                 adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                 spRepairList.setAdapter(adapter);
                 spRepairList.setPrompt("选项");
                 spRepairList
                         .setOnItemSelectedListener(new OnItemSelectedListener() {
                             @Override
                             public void onItemSelected(AdapterView<?> arg0,
                                     View arg1, int arg2, long arg3) {
                                 // TODO Auto-generated method stub
                                 RepairId=((RepairsModel)spRepairList.getSelectedItem()).getId();
                                 Toast.makeText(
                                         MainActivity.this,
                                         "键:"
                                                 + spRepairList
                                                         .getSelectedItem()
                                                         .toString()
                                                 + "、"
                                                 + ((RepairsModel) spRepairList
                                                         .getSelectedItem())
                                                         .getId()
                                                 + ",值:"
                                                 + ((RepairsModel) spRepairList
                                                         .getSelectedItem())
                                                         .getRepairName(),
                                         Toast.LENGTH_LONG).show();
                             }

                             public void onNothingSelected(AdapterView<?> parent) {

                             }

                         });

             } else {

             }
         } catch (Exception e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
     }
 }Repair类:
package com.repair;

 import java.io.Serializable;
 import java.util.Date;

 public class RepairsModel implements Serializable {
     
     public RepairsModel(int id,String repairname){
         super();
         this.id=id;
         this.repairName=repairname;
     }
     
     private int id;

     public int getId() {
         return id;
     }

     public void setId(int id) {
         this.id = id;
     }

     private String repairName;
     
     public String getRepairName() {
         return repairName;
     }

     public void setRepairName(String repairName) {
         this.repairName = repairName;
     }
     public String toString(){
         return repairName;
     }
     
 }