首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >KSOAP ANDROID实现

KSOAP ANDROID实现
EN

Stack Overflow用户
提问于 2012-06-22 19:00:30
回答 2查看 3.5K关注 0票数 1

嗨,我有一个与Android K-SOAP相关的问题,我是第一次使用K-SOAP Android

this is the service link

你可以在这里看到请求和响应,这里也提到了,这是我的代码,点击服务并获得响应`包com.ksoap.net;

代码语言:javascript
复制
import org.ksoap2.SoapEnvelope;
   import org.ksoap2.serialization.PropertyInfo;
   import org.ksoap2.serialization.SoapObject;
   import org.ksoap2.serialization.SoapPrimitive;
   import org.ksoap2.serialization.SoapSerializationEnvelope;
   import org.ksoap2.transport.AndroidHttpTransport;
   import org.ksoap2.transport.HttpTransportSE;

   import android.app.Activity;
   import android.os.Bundle;
   import android.util.Log;
   import android.widget.TextView;

public class AndroidWebService extends Activity {

        private final String NAMESPACE = "http://webservices.iyogi.net/";
                                                                                          private                                                                                 final                                                                        String                                                             URL                                                  =                                          "http://sdservices.iyogi.net               /iyogi           /webservicesnonrestv5/toolbarwebservices.asmx";
        private final String SOAP_ACTION = "http://webservices.iyogi.net/GetSubscriptionByInputObject";
        private final String METHOD_NAME = "GetSubscriptionByInputObject";
        String request = "<?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://www.w3.org/2003/05/soap-envelope\">"
                + "<soap:Body>"
                + "<GetSubscriptionByInputObject xmlns=\"http://webservices.iyogi.net\">"
                + "<inpAccessCode>" + "<AccessCode>”2466276627755434”</AccessCode>"
                + "</inpAccessCode>" + "</GetSubscriptionByInputObject>"
                + "</soap:Body>" + "</soap:Envelope>";

        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);

            // SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);

            String weight = "3700";
            String fromUnit = "Grams";
            String toUnit = "Kilograms";


            SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
                    SoapEnvelope.VER11);
            envelope.dotNet = true;
            envelope.setOutputSoapObject(request);
            AndroidHttpTransport androidHttpTransport = new AndroidHttpTransport(
                    URL);

            try {
                androidHttpTransport.call(SOAP_ACTION, envelope);
                SoapObject response = (SoapObject) envelope.getResponse();
                int result = Integer.parseInt(response.getProperty(0).toString());
                System.out.println("result  is " + Integer.toString(result));
                System.out.println("res is -->>  "
                        + response.getProperty(0).toString());
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
}`

请帮助我点击并从此服务中获得正确的响应任何帮助都是非常感谢的

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-22 22:17:41

代码语言:javascript
复制
  final String URL = "url";
              u = new java.net.URL(URL);

             URLConnection uc = u.openConnection();
             connection = (HttpURLConnection) uc;

             connection.setDoOutput(true);
             connection.setDoInput(true);
             connection.setRequestProperty("SOAPAction", SOAP_ACTION);
             connection.setRequestMethod("POST");
             connection.setRequestProperty("Content-type", "text/xml; charset=utf-8");

             String xmldata ="xml request";


             //System.out.println(xmldata);
             OutputStream out = connection.getOutputStream();

             Writer wout = new OutputStreamWriter(out);

              wout.write(xmldata);

                wout.flush();

                wout.close();
                InputStream is = connection.getInputStream();
                MakeHttpRequest.actiovationParser(is,AndroidWebService.this);

它工作的很好干杯快乐的编码

票数 0
EN

Stack Overflow用户

发布于 2012-06-22 19:27:07

试试这个`

代码语言:javascript
复制
 import org.ksoap2.SoapEnvelope;
       import org.ksoap2.serialization.PropertyInfo;
       import org.ksoap2.serialization.SoapObject;
       import org.ksoap2.serialization.SoapPrimitive;
       import org.ksoap2.serialization.SoapSerializationEnvelope;
       import org.ksoap2.transport.AndroidHttpTransport;
       import org.ksoap2.transport.HttpTransportSE;

       import android.app.Activity;
       import android.os.Bundle;
       import android.util.Log;
       import android.widget.TextView;

    public class AndroidWebService extends Activity {

            private final String NAMESPACE = "http://webservices.iyogi.net/";
                                                                                              private                                                                                 final                                                                        String                                                             URL                                                  =                                          "http://sdservices.iyogi.net               /iyogi           /webservicesnonrestv5/toolbarwebservices.asmx";
            private final String SOAP_ACTION = "http://webservices.iyogi.net/GetSubscriptionByInputObject";
            private final String METHOD_NAME = "GetSubscriptionByInputObject";
    private final String URL = "http://sdservices.iyogi.net/iyogi/webservicesnonrestv5/toolbarwebservices.asmx";

HttpTransportSE httpTransport = null;

        SoapObject request = null;
    request = new SoapObject(NAMESPACE, METHOD_NAME);
            PropertyInfo pi = new PropertyInfo();       
            pi.setName("AccessCode");
            pi.setValue("2466276627755434");
            pi.setType(PropertyInfo.STRING_CLASS);
            request.addProperty(pi);
            SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
                    SoapEnvelope.VER11);
            envelope.dotNet = true;

            envelope.setOutputSoapObject(request);

            httpTransport = new HttpTransportSE(URL);
            httpTransport.debug = true;


            try {
                httpTransport.call(SOAP_ACTION, envelope);

    SoapObject response = (SoapObject) envelope.getResponse();
                    int result = Integer.parseInt(response.getProperty(0).toString());
                    System.out.println("result  is " + Integer.toString(result));
                    System.out.println("res is -->>  "
                            + response.getProperty(0).toString());
                } catch (Exception e) {
                    e.printStackTrace();
                }

`

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11154919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档