Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Android到Web服务。未传递的值_C#_Android_Asp.net_Web Services - Fatal编程技术网

C# Android到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

你好。我目前有这样的web服务

    [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是为了提醒大家。你让我检查的。