0

WebService を使用するにはどうすればよいですか? これは私のコードです:

WebServiceParams ws = new WebServiceParams(context);

    SoapObject request = new SoapObject(ws.getWSNameSpace(), ws.getWSHelloMethod());

    SoapSerializationEnvelope soapSerializationEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
    soapSerializationEnvelope.setOutputSoapObject(request);

    request.addProperty("name", "Charly");

    try {
        HttpTransportSE httpTransportSE = new HttpTransportSE(ws.getWSUrl());
        httpTransportSE.debug = true;

        httpTransportSE.call(ws.getWSNameSpace() + ws.getWSLoginMethod(), soapSerializationEnvelope);

        String xmlResult = soapSerializationEnvelope.getResponse().toString();

        return null;
    } catch (Exception e) {
        e.printStackTrace();
        return e;
    }

そして、soapFault faultcode soapClient faultstring Unmarshalling Error unexpected element uri:"", local:"name" expected elements are <{}request> を取得します

Web サービスの主要部分は次のとおりです。

<request>
      <name>?</name>
</request>

リクエストタグと名前の中に書いて送信するにはどうすればよいですか?

4

1 に答える 1

1

ライブラリを使用しているかどうかはわかりません。Ksoap2を使用してこれを達成できました。

ここに例があります。それが役に立てば幸い。

public static int getTotalRows(){
    SoapObject request = new SoapObject(Variables.WEBSERVICE_NAMESPACE,    Variables.METHOD_GETDEALS_TOTAL);
    SoapSerializationEnvelope env = new     SoapSerializationEnvelope(SoapEnvelope.VER11);
    env.dotNet = true;
    env.setOutputSoapObject(request);
    HttpTransportSE androidHttpTransport = new      HttpTransportSE(Variables.WEBSERVICE_URL);
    int totalRows = 0;

    try {
        androidHttpTransport.call(Variables.SOAP_ACTION_GETDEALS_TOTALROWS, env);
        SoapPrimitive response = (SoapPrimitive)env.getResponse();
        totalRows = Integer.valueOf(response.toString());
        Log.i(Variables.TAG, response.toString());
        return totalRows;
    } catch (IOException e) {
        e.printStackTrace();
        return totalRows;
    } catch (XmlPullParserException e) {
        e.printStackTrace();
        return totalRows;
    } catch (NumberFormatException e) {
        e.printStackTrace();
        return totalRows;
    } catch (IllegalArgumentException e) {
        e.printStackTrace();
        return totalRows;
    }
}
于 2012-12-26T22:48:34.993 に答える