комплекс ксоап в андроиде java - PullRequest
0 голосов
/ 25 февраля 2012

Я пытаюсь загрузить некоторые данные в веб-службу в .net, используя ksoap java на Android. Я пытался работать, но безуспешно. результат нулевой, и я понятия не имею, почему это происходит код, который я использую, следующий:

xml веб-сервис

<?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>
    <AddBloodPressure xmlns="http://tempuri.org/">
      <PatientID>int</PatientID>
      <BloodPressure>
        <Sistolic>int</Sistolic>
        <Distolic>int</Distolic>
      </BloodPressure>
      <DateTimeStamp>dateTime</DateTimeStamp>
    </AddBloodPressure>
  </soap:Body>
</soap:Envelope>

Код KvmSerializable

public class Category implements KvmSerializable
{
    public int Distolic;
    public int Sistolic;



    public int getDistolic() {
        return Distolic;
    }
    public void setDistolic(int distolic) {
        Distolic = distolic;
    }

    public int getSistolic() {
        return Sistolic;
    }
    public void setSistolic(int sistolic) {
        Sistolic = sistolic;
    }



    public Object getProperty(int arg0) {

        switch(arg0)
        {
        case 0:
            return getSistolic();
        case 1:
            return getDistolic();

        }

        return null;
    }

    public int getPropertyCount() {
        return 3;
    }

    public void getPropertyInfo(int arg0, Hashtable arg1, PropertyInfo info) {
        switch(arg0)
        {
        case 0:
            info.type = PropertyInfo.INTEGER_CLASS;
            info.name = "Sistolic";
            break;
        case 1:
            info.type = PropertyInfo.INTEGER_CLASS;
            info.name = "Distolic";
            break;
        default:break;
        }
    }

    public void setProperty(int arg0, Object arg1) {
        switch (arg0)
        {
        case 0:
            this.Sistolic = Integer.parseInt(arg1.toString());
            break;
        case 1:
            this.Distolic=Integer.parseInt(arg1.toString());
            break;

        }
    }
}

и мой главный:

    SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);    
        request.addProperty("PatientId", "8");
      Category i1=new Category();
          i1.setDistolic(100);
      i1.setSistolic(100);
      PropertyInfo pi=new PropertyInfo();
      pi.setName("BloodPressure");
      pi.setValue(i1);
     pi.setType(i1.getClass());
     request.addProperty(pi);                          request.addProperty("DateTimeStamp","2012-01-13");
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
    envelope.dotNet=true;
    envelope.setOutputSoapObject(request);
        HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
        androidHttpTransport.call(SOAP_ACTION, envelope);

    Object result=((Object)envelope.getResponse());
    String resultString=new String(result.toString());

}

ки. это то, что использую. Кто-нибудь знает, как это можно исправить?

1 Ответ

0 голосов
/ 25 февраля 2012

Я считаю, что свойство метки времени неверно. Обычно формат веб-сервисов .net для метки времени выглядит примерно так:

yyyyMMddThhmmss

я не могу вспомнить точный синтаксис

...