Service端: 
 [WebService(Namespace = "http://localhost/WebService.asmx")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]     [WebMethod]
        public String ValidateUsername(String username, String pass)
        {
            try
            {
                String name = username;
                String pwd = pass;
                DataSet sqlDs = new DataSet();
                DataAccess dataAcc = new DataAccess(mfConn);
                string mfSql = "select * from Admin";
                sqlDs = dataAcc.GetDataset(mfSql, "Admin");
                String flag = "";
                foreach (DataTable dt in sqlDs.Tables)
                {                    int i;
                    for (i = 0; i < dt.Rows.Count; i++)
                    {
                        if (name == dt.Rows[i].ItemArray[1].ToString() && pwd == dt.Rows[i].ItemArray[2].ToString())
                        { flag = "true"; break; }
                        
                    }
                    if (i == dt.Rows.Count)
                    { flag = "false"; }                }
                return flag;
            }
            catch (Exception ee)
            {                return ee.ToString();
             
            }
        
        }
Android 客户端:private static final String NAMESPACE = "http://10.0.2.2:21368/WebService.asmx"; private static final String URL="http://10.0.2.2:21368/WebService.asmx";
private static final String METHOD_NAME = "ValidateUsername";
private static final String SOAP_ACTION = "http://localhost/WebService.asmx/ValidateUsername";
                            SoapObject soapObject = new SoapObject(NAMESPACE, METHOD_NAME);
soapObject.addProperty("username","admin");
soapObject.addProperty("pass","123");
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.bodyOut = soapObject;
envelope.dotNet = true;
envelope.setOutputSoapObject(soapObject);

AndroidHttpTransport androidHttpTransport = new AndroidHttpTransport(URL);
androidHttpTransport.debug = true; androidHttpTransport.call(SOAP_ACTION, envelope); Object object =envelope.getResponse();
System.out.println("RE   "+object.toString() );
可是客户端显示的是false,然后我将服务器的参数保存在文件上,显示为空,不知道是什么原因!

解决方案 »

  1.   

    上个月做过 你webservice 能连通么
      

  2.   

    一:NAMESPACE 错了,应该是:String NameSpace = "http://tempuri.org/";
    二:envelope.bodyOut = soapObject;这句话不要
    你再试试
      

  3.   

    你比较一下看看 public String getLoginResult(String userName, String userPassword)
    throws Exception {
    String resultString = "";
    SoapObject request = new SoapObject("http://tempuri.org/",
    "ValidateUsername");
    request.addProperty("uname", userName);
    request.addProperty("upwd", userPassword); SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
    SoapEnvelope.VER11);
    envelope.dotNet = true; envelope.setOutputSoapObject(request); MyAndroidHttpTransport ht = new MyAndroidHttpTransport(
    "http://10.0.2.2:21368/WebService.asmx", 5000);
    ht.call("http://tempuri.org/ValidateUsername",
    envelope); if (envelope.getResponse() != null) {
    SoapPrimitive response = (SoapPrimitive) envelope.getResponse();
    resultString = response.toString();
    }
    return resultString;
    }
      

  4.   

    envelope.dotNet = true;改为
    envelope.dotNet = false;即可
      

  5.   

    soapObject.addProperty("username","admin");
    soapObject.addProperty("pass","123");
    参数应改为"arg0"和"arg1"