【问题标题】:kSoap2 HttpTransportSE does not work with api11 and higher apiskSoap2 HttpTransportSE 不适用于 api11 及更高版本的 api
【发布时间】:2012-03-15 08:36:20
【问题描述】:

我目前正在开发和使用 ksoap2 Web 服务的应用程序。 我正在使用“ksoap2-android-assembly-2.6.0-jar-with-dependencies.jar”

这是我的问题。

api10及以下版本可以成功接收数据。 (*在我的 电话和虚拟机)

但是当我在 api 11 的 Android 虚拟机上测试我的应用程序时 及更高版本。

HttpTransportSE 不起作用。

我的代码;(不是全部)

SoapSerializationEnvelope soapEnvol= new
SoapSerializationEnvelope(SoapEnvelope.VER11);
HttpTransportSE setConn = new HttpTransportSE(URL);

     try {
     setConn.call(SOAP_ACTION, soapEnvol);
    }
     catch{Exception e)
    {
          return null;
    }

""" setConn.call(SOAP_ACTION, soapEnvol); """ 总是很受欢迎 api 11 av 机器。

我错过了什么? 已经谢谢了。

编辑:(完整代码响应)

public List<HashMap<String, String>> duyurulariListeOlarakGetir() {
        SoapObject istek = new SoapObject(NAMESPACE, METHOD_NAME);

        istek.addProperty("user", "123");
        istek.addProperty("pass", "123");
        istek.addProperty("appID", "1");

        SoapSerializationEnvelope soapZarf = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        soapZarf.dotNet = true;
        soapZarf.setOutputSoapObject(istek);

        HttpTransportSE baglantıKur = new HttpTransportSE(URL);

        List<HashMap<String, String>> fillMaps = new ArrayList<HashMap<String, String>>();

        try {

            baglantıKur.debug=true;
            baglantıKur.call(SOAP_ACTION, soapZarf);

            SoapObject sonuclar = (SoapObject) soapZarf.getResponse();

            int totalCount = sonuclar.getPropertyCount();
            if (totalCount > 0) {
                for (int detailCount = 0; detailCount < totalCount; detailCount++) {

                    SoapObject pojoSoap = (SoapObject) sonuclar.getProperty(detailCount);
                    HashMap<String, String> map = new HashMap<String, String>();

                    map.put("duyuruID", pojoSoap.getProperty("duyuruID").toString());
                    map.put("duyuruMetin", pojoSoap.getProperty("duyuruMetin").toString());
                    map.put("duyuruSaat", pojoSoap.getProperty("duyuruSaat").toString());
                    map.put("duyuruBaslik", pojoSoap.getProperty("duyuruBaslik").toString());
                    map.put("duyuruTarih", pojoSoap.getProperty("duyuruTarih").toString());
                    map.put("kurumID", pojoSoap.getProperty("duyuruSilindi").toString());
                    map.put("uygulamaID", pojoSoap.getProperty("duyuruSilindi").toString());
                    map.put("duyuruSilindi", pojoSoap.getProperty("duyuruSilindi").toString());

                    fillMaps.add(map);
                }
            } else
                return null;
        } catch (Exception e) {
            HashMap<String, String> map = new HashMap<String, String>();

            map.put("duyuruID", "");
            map.put("duyuruMetin", "Bağlantı kurulamadı");
            map.put("duyuruSaat", "Bağlantı kurulamadı");
            map.put("duyuruBaslik", "Bağlantı kurulamadı");
            map.put("duyuruTarih", "Bağlantı kurulamadı");
            map.put("kurumID", "Bağlantı kurulamadı");
            map.put("uygulamaID","Bağlantı kurulamadı");
            map.put("duyuruSilindi", "Bağlantı kurulamadı");

            fillMaps.add(map);
            return fillMaps;
        }
        return fillMaps;
    }

【问题讨论】:

  • 我认为这是某种错误,因为我在 ICS 上运行的应用程序也遇到了这个问题。如果我没记错的话,那么当您尝试与启用 SSL 的服务器通信时会发生这种情况,仪式?好吧,最终我不得不改用 Json 来解决这个问题,我对这一举动感到非常满意,因为它更快速、更容易处理
  • 我必须使用 kSoap,因为我们正在为 Iphone 开发相同的应用程序并且我们想使用相同的网络服务。
  • 我添加了完整代码,但此代码在 api 版本 10 下完美运行
  • 只是为了概述,阅读这篇文章:codeproject.com/Articles/45275/… 它演示了来自单个 Web 服务的 SOAP 和 Json 响应。就个人而言,我建议使用 Json,因为与 SOAP 相比,它需要更少的数据来传输相同的信息,它简单、易于掌握并且在 Android 中原生支持。此外,您可以阅读 stackoverflow.com/questions/2851117/…encosia.com/asmx-and-json-common-mistakes-and-misconceptions
  • 如果 sorgu=0 是您的 web 方法的输入参数,那么作为有效的 json 参数,它应该是 {"sorgu": 0}

标签: android ksoap2 android-ksoap2


【解决方案1】:

这可能与在 apis 11 及更高版本中不允许在主线程中访问网络有关,您可能必须使用 ASYNC 任务。我有一个使用 JSON 对象获取数据的应用程序,我最初编码它只是在onCreate(非常小的代码)中..它在我的手机上运行良好..但是当我在我的平板电脑(ICS)上尝试它时它给了我错误,在调试中我看到了一个异常,当我用谷歌搜索它时我发现解决问题,希望对你有帮助,干杯!

【讨论】:

    猜你喜欢
    • 2019-10-06
    • 2010-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-09
    • 2015-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多