1

Android で SOAP Web サービスを呼び出していますが、応答は anyType{} のみです。しかし、応答データが来ていません。応答データを取得する方法もそれだけの応答を提供しているだけです。

private static String SOAP_ACTION = "http://tempuri.org/IService1/FindEmployee";
            private static String NAMESPACE = "http://tempuri.org/";    
            private static String METHOD_NAME = "FindEmployee"; 
            private static String URL = "http://192.168.1.9/Employee/Service1.svc?wsdl";
            private TextView tv;

            StringBuilder sb;

            private XmlSerializer writer;
            private TextView lblResult1;


             @Override
             public void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.main);

              lblResult1 = (TextView) findViewById(R.id.textView1);
              SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 
              request.addAttribute("Empid", "R001");

              SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
              envelope.dotNet=true;
              envelope.setOutputSoapObject(request);
              HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
              try {
                  androidHttpTransport.call(SOAP_ACTION, envelope);
                 SoapObject resultsRequestSOAP = (SoapObject) envelope.bodyIn;
               lblResult1.setText(resultsRequestSOAP.toString());
               } catch (Exception e) 
               {

               System.out.println("Error"+e);
              }

             }
4

2 に答える 2

0
SoapObject request = new SoapObject(NAMESPACE, methodName);
            request.addProperty("Empid", "R001");

            SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
            envelope.setOutputSoapObject(request);
            AndroidHttpTransport androidHttpTransport = new AndroidHttpTransport(URL);
            androidHttpTransport
            .setXmlVersionTag("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
            envelope.dotNet = true;
            androidHttpTransport.debug = true;
            androidHttpTransport.call(newSoapAction, envelope); 
            InputStream in = new ByteArrayInputStream(androidHttpTransport.responseDump.getBytes());    
    System.out.println("WS >>  Response: "+androidHttpTransport.responseDump); // you will get response overhere    
于 2012-06-11T04:43:58.727 に答える
0

これを書くだけ lblResult1.setText(resultsRequestSOAP.getProperty(0).toString());

それ以外のlblResult1.setText(resultsRequestSOAP.toString());

お役に立てますように。

機能していない場合は、Web サービスが応答を返していないことを意味します。つまり、Web サービスがデータベースからデータを取得していません。

これに関してさらに助けが必要な場合は、私に書いてください。

于 2012-06-12T11:56:12.783 に答える