C# Android到Web服务。未传递的值
你好。我目前有这样的web服务C# Android到Web服务。未传递的值,c#,android,asp.net,web-services,C#,Android,Asp.net,Web Services,你好。我目前有这样的web服务 [WebMethod] public bool SyncGeneralDataToServer(string macaddress, string userid, string password, string computername, string dateupdated, string q1, string a1
[WebMethod]
public bool SyncGeneralDataToServer(string macaddress, string userid,
string password, string computername,
string dateupdated, string q1, string a1
, string q2, string a2, string q3, string a3
, string q4, string a4, string q5, string a5
, string location, bool onsite)
{
MTKBL = new MobileTKBL();
bool result;
try
{
result = MTKBL.SyncToServer(macaddress, userid,
password, computername,
dateupdated, q1, a1
, q2, a2, q3, a3
, q4, a4, q5, a5
, location, onsite);
}
catch (Exception e)
{
result = false;
}
return result;
}
我有一个android方法,看起来像这样
public boolean SyncLocalGeneralDataToServer(String macaddress, String userid,
String password, String computername,
String dateupdated, String q1, String a1
, String q2, String a2, String q3, String a3
, String q4, String a4, String q5, String a5
, String location, boolean onsite)
{
boolean result = false;
String SOAP_ACTION = "http://MTKAndroidService.org/SyncGeneralDataToServer";
String METHOD_NAME = "SyncGeneralDataToServer";
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
PropertyInfo[] propInfos = new PropertyInfo[17];
propInfos[0]= setPropertyInfo("macaddress",macaddress,String.class);
propInfos[1]= setPropertyInfo("userid",userid,String.class);
propInfos[2]= setPropertyInfo("macaddress",password,String.class);
propInfos[3]= setPropertyInfo("computername",computername,String.class);
propInfos[4]= setPropertyInfo("dateupdated",dateupdated,String.class);
propInfos[5]= setPropertyInfo("q1",q1,String.class);
propInfos[6]= setPropertyInfo("q2",q2,String.class);
propInfos[7]= setPropertyInfo("q3",q3,String.class);
propInfos[8]= setPropertyInfo("q4",q4,String.class);
propInfos[9]= setPropertyInfo("q5",q5,String.class);
propInfos[10]= setPropertyInfo("a1",a1,String.class);
propInfos[11]= setPropertyInfo("a2",a2,String.class);
propInfos[12]= setPropertyInfo("a3",a3,String.class);
propInfos[13]= setPropertyInfo("a4",a4,String.class);
propInfos[14]= setPropertyInfo("a5",a5,String.class);
propInfos[15]= setPropertyInfo("location",location,String.class);
propInfos[16]= setPropertyInfo("onsite",onsite,boolean.class);
for(int i =0; i < propInfos.length; i++)
{
request.addProperty(propInfos[i]);
}
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true; // put this only if the web service is .NET one
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
try {
androidHttpTransport.call(SOAP_ACTION, envelope);
SoapPrimitive response = (SoapPrimitive)envelope.getResponse();
Log.i("myApp", response.toString());
if(response.toString().equalsIgnoreCase("true")){
result = true;
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
private PropertyInfo setPropertyInfo(String name,Object value,Object type)
{
PropertyInfo propInfo =new PropertyInfo();
propInfo.setName(name);
propInfo.setValue(value);
propInfo.setType(type);
return propInfo;
}
public boolean SyncLocalGeneralDataToServer(字符串macaddress,字符串userid,
字符串密码,字符串计算机名,
字符串日期更新,字符串q1,字符串a1
,字符串q2,字符串a2,字符串q3,字符串a3
,字符串q4,字符串a4,字符串q5,字符串a5
,字符串位置,布尔值)
{
布尔结果=假;
字符串SOAP_ACTION=”http://MTKAndroidService.org/SyncGeneralDataToServer";
字符串方法\u NAME=“SyncGeneralDataToServer”;
SoapObject请求=新的SoapObject(名称空间、方法名称);
PropertyInfo[]PropInfo=新的PropertyInfo[17];
PropInfo[0]=setPropertyInfo(“macaddress”,macaddress,String.class);
PropInfo[1]=setPropertyInfo(“userid”,userid,String.class);
PropInfo[2]=setPropertyInfo(“macaddress”,密码,String.class);
PropInfo[3]=setPropertyInfo(“computername”,computername,String.class);
PropInfo[4]=setPropertyInfo(“dateupdated”,dateupdated,String.class);
PropInfo[5]=setPropertyInfo(“q1”,q1,String.class);
PropInfo[6]=setPropertyInfo(“q2”,q2,String.class);
PropInfo[7]=setPropertyInfo(“q3”,q3,String.class);
PropInfo[8]=setPropertyInfo(“q4”,q4,String.class);
PropInfo[9]=setPropertyInfo(“q5”,q5,String.class);
PropInfo[10]=setPropertyInfo(“a1”,a1,String.class);
PropInfo[11]=setPropertyInfo(“a2”,a2,String.class);
PropInfo[12]=setPropertyInfo(“a3”,a3,String.class);
PropInfo[13]=setPropertyInfo(“a4”,a4,String.class);
PropInfo[14]=setPropertyInfo(“a5”,a5,String.class);
PropInfo[15]=setPropertyInfo(“位置”,位置,字符串.class);
PropInfo[16]=setPropertyInfo(“现场”,现场,布尔类);
for(int i=0;i
我检查了属性信息值是否正确和完整。问题是web服务接受请求,但在数据库中插入空值。这里我遗漏了什么?您的命名空间URL(包括.net和android端)中可能有一个冒号,例如http://-从命名空间中删除http://部分,然后重试。您的命名空间URL(包括.net和android端)中可能有一个冒号,例如http://-从名称空间中删除http://部分,然后重试。调试服务时,是否在该方法的变量中看到正确的值?结果=MTKBL.SyncToServer(macaddress、userid、密码、computername、dateupdated、q1、a1、q2、a2、q3、a3、q4、a4、q5、a5、位置、现场);你是说在本地浏览器中?是的,它成功地将其保存在数据库中,这意味着它在服务器中传递了值。但是如果它来自android no.所有的值都是空的。这就是我问这个问题的原因。当你调试这个服务时,你在这个方法的变量中看到了正确的值吗?结果=MTKBL.SyncToServer(macaddress、userid、密码、computername、dateupdated、q1、a1、q2、a2、q3、a3、q4、a4、q5、a5、位置、现场);你是说在本地浏览器中?是的,它成功地将其保存在数据库中,这意味着它在服务器中传递了值。但是如果它来自android no.所有的值都是空的。这就是我问这个问题的原因。实际上,url中的一个拼写错误导致了这个问题。不过,Tnx是为了提醒大家。你让我检查的。实际上是url中的一个拼写错误导致了这个问题。不过,Tnx是为了提醒大家。你让我检查的。