Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.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
如何在Android中通过SOAP服务发送复杂的对象、数组和日期时间?_Android_Web Services_Soap_Ksoap2_Android Ksoap2 - Fatal编程技术网

如何在Android中通过SOAP服务发送复杂的对象、数组和日期时间?

如何在Android中通过SOAP服务发送复杂的对象、数组和日期时间?,android,web-services,soap,ksoap2,android-ksoap2,Android,Web Services,Soap,Ksoap2,Android Ksoap2,嗨,我是一个新手,我从未使用过SOAP服务,实际上该服务是由另一个人提供的,所以我不知道该服务,到目前为止,我成功地发送了一个整数并获得了响应,但我不知道如何处理复杂的对象,所以请指导我。。 代码如下: public String sendOrder(String METHOD_NAME) { String RESPONSE = ""; try { Date dateTime = (Date) Calendar.getInstance().getTime(

嗨,我是一个新手,我从未使用过SOAP服务,实际上该服务是由另一个人提供的,所以我不知道该服务,到目前为止,我成功地发送了一个整数并获得了响应,但我不知道如何处理复杂的对象,所以请指导我。。 代码如下:

    public String sendOrder(String METHOD_NAME) {
    String RESPONSE = "";
    try {
        Date dateTime = (Date) Calendar.getInstance().getTime();

        request = new SoapObject(NAMESPACE, METHOD_NAME);
        request.addProperty("ShopID", 0);
        request.addProperty("SaleDate", getSOAPDateString(dateTime));
        request.addProperty("UserID", 0);
        request.addProperty("POSCode", "string");
        request.addProperty("SaleID", 0);
        request.addProperty("TableID", 0);
        request.addProperty("TableDesc", "string");
        request.addProperty("TableStatus", "");

        SaleAndReturnDetailAndroid C = new SaleAndReturnDetailAndroid(0,0,1,0,false);
        PropertyInfo pi = new PropertyInfo();
        pi.setName("SaleAndReturnDetailAndroid");
        pi.setValue(C);
        pi.setType(C.getClass());

        request.addProperty(pi);
        //request.addProperty(pi);

        //request.addProperty("LineItems", arrayList);
        envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        envelope.bodyOut = request;
        envelope.dotNet = true;

        httpRequest = new HttpTransportSE(URL);
        httpRequest.debug = true;
        httpRequest.call(NAMESPACE + METHOD_NAME, envelope);
        Log.v("Result ResPOnse", envelope.getResponse().toString());
        RESPONSE = envelope.getResponse().toString();
        Log.v("Result DONE", METHOD_NAME);
        // GetData(RESPONSE, METHOD_NAME);
    } catch (Exception e) {
        Log.e("LINK_PARSER sendOrderInfo", e.toString());

    }
    return RESPONSE;
}
这给了我一个错误:

10-29 15:15:54.887: E/LINK_PARSER sendOrderInfo(18354): java.lang.RuntimeException: Cannot serialize: 0.0
SOAP服务如下所示:

    <?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <PlaceOrder xmlns="http://lumensoft.biz/">
      <order>
        <ShopID>int</ShopID>
        <SaleDate>dateTime</SaleDate>
        <UserID>int</UserID>
        <POSCode>string</POSCode>
        <SaleID>int</SaleID>
        <TableID>int</TableID>
        <TableDesc>string</TableDesc>
        <TableStatus>string</TableStatus>
        <LineItems>
          <SaleAndReturnDetailAndroid>
            <UnitPrice>double</UnitPrice>
            <Qty>double</Qty>
            <DishID>int</DishID>
            <AvgCost>double</AvgCost>
            <IsReturnItem>boolean</IsReturnItem>
          </SaleAndReturnDetailAndroid>
          <SaleAndReturnDetailAndroid>
            <UnitPrice>double</UnitPrice>
            <Qty>double</Qty>
            <DishID>int</DishID>
            <AvgCost>double</AvgCost>
            <IsReturnItem>boolean</IsReturnItem>
          </SaleAndReturnDetailAndroid>
        </LineItems>
      </order>
    </PlaceOrder>
  </soap:Body>
</soap:Envelope>

int
日期时间
int
一串
int
int
一串
一串
双重的
双重的
int
双重的
布尔值
双重的
双重的
int
双重的
布尔值
请原谅我的英语。 我不知道
LineItems
是列表还是对象, 而且
SaleAndReturnDetailAndroid
是两次,所以我必须发送两次? 我想我做的每件事都是错的。
我真的很沮丧,请帮帮我……

@Selvin我到处都找过了@塞尔文:我看了,但我不明白。。。。!我以前从未处理过SOAP请求,我会找到一些。。。这只是时间问题。。