将字符串列表从Android发送到vb.net

时间:2015-03-16 18:57:21

标签: android asp.net vb.net wcf ksoap2

现在已经2天了。我正在尝试将复杂数据发送到vb.net WCF服务。 这是服务请求:

class saveLoadParts extends AsyncTask<List<String>, String, String>{

@Override
protected String doInBackground(List<String>... params) {

    List<String> checkList = new ArrayList<String>();
    checkList = oldList;
    SoapObject request  = new SoapObject(NAMESPACE, METHOD_NAME4);
    SoapObject soapLogs  = new SoapObject(NAMESPACE, "checkList");
    for (String i : checkList){
        soapLogs.addProperty("ItemList", i);
    }

    request.addSoapObject(soapLogs );

    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
            SoapEnvelope.VER11);
    envelope.setOutputSoapObject(request);
    envelope.dotNet = true;
    HttpTransportSE transport = new HttpTransportSE(URL);
    try {
        transport.call(GETUSER_SOAP_ACTION + METHOD_NAME4, envelope);
        SoapPrimitive response = (SoapPrimitive)envelope.getResponse();
        finalResult = response.toString();

    }catch (SoapFault e) {
        e.printStackTrace();
    } catch (HttpResponseException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (XmlPullParserException e) {
        e.printStackTrace();
    }

    return finalResult;
}

@Override
protected void onPostExecute(String result) {
    if (!result.equals("")){
        Toast.makeText(OrderDetailView.this, "List Stored",Toast.LENGTH_SHORT).show();
    }
}}

这是我的VB.net代码

Public Class ItemList
     Public abc As String
End Class

Function SaveLoadParts(ByVal checkList As ItemList()) As String Implements IService1.SaveLoadParts
    Dim a As String = checkList(0).abc.ToString()
    Return a
End Function

我已经尝试了几乎所有我可以在互联网上找到的东西,它总是给我一个错误

 Now I am getting this.

SoapFault - faultcode:&#39; a:反序列化失败&#39; faultstring:&#39;格式化程序在尝试反序列化消息时抛出异常:尝试反序列化参数http://tempuri.org/:checkList时出错。 InnerException消息在第1行位置361中为“错误”。元素&#39; http ...&#39;包含映射到名称&#39; http ...&#39;的类型的数据。反序列化器不知道映射到此名称的任何类型。考虑使用DataContractResolver或添加对应于&#39; checkList&#39;到已知类型列表 - 例如,通过使用KnownTypeAttribute属性或将其添加到传递给DataContractSerializer的已知类型列表。&#39;。有关详细信息,请参阅InnerException。&#39; faultactor:&#39; null&#39; detail:null

请帮助!!

0 个答案:

没有答案