0

Androidでksoapjavaを使用して、.netのWebサービスにデータをアップロードしようとしています。私はそれを動かそうとしましたが、成功しませんでした。結果はnullであり、なぜこれが発生するのかわかりません。使用しているコードは次のとおりです。

xmlWebサービス

<?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());

}

わかった。これが使用しています。誰かがこれを修正する方法を知っていますか?

4

1 に答える 1

0

タイムスタンプ プロパティが間違っていると思います。通常、タイムスタンプの .net webservices 形式は次のようなものです

yyyyMMddThhmmss

正確なシンタックスを思い出せない

于 2012-02-25T11:27:33.857 に答える