在 Android 版 Phonegap 中调用 SOAP Web 服务

2024-01-22

我想打电话SOAP网络服务在Phonegap(Android)

我已经尝试过这段代码但是在回复文字有未定义和Status Error

<!DOCTYPE>
<html>
<head>
    <title>SOAP JavaScript Client Test</title>
    <script type="text/javascript" src="../cordova.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script type="text/javascript">
        function soap() {


                $.ajax({
                    type: "POST",
                    url: "http://domain_Url/orabpel/default/XXNotificationListRetrieval/1.0",
                    dataType: "xml",
                    contentType: 'text/xml; charset=utf-8',
                    data: '<soap:Envelope'+
            'xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"'+
            'xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">'+
            '<soap:Header>'+
            '<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" soap:mustUnderstand="1">'+
            '<wsse:UsernameToken xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">'+
            '<wsse:Username>Hello</wsse:Username>'+
            '<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">world</wsse:Password></wsse:UsernameToken></wsse:Security>'+
            '</soap:Header>'+    
            '<soap:Body '+ 
            ' xmlns:ns1="http://xmlns.oracle.com/bpel/mobile/Notificationlist">'+           
            '<ns1:NotificationlistRetrievalREQ>'+                
            '<ns1:NotificationlistType>OFFER</ns1:NotificationlistType>'+
            '<ns1:Status>TODO</ns1:Status>'+
            '<ns1:Mode/>'+
            '</ns1:NotificationlistRetrievalREQ>'+
            '</soap:Body>'+
            '</soap:Envelope>';
                    success: processSuccess,
                    error: processError
                });

                function processSuccess(data, status, req) {
                    if (status == "success")
                    alert(req.responseText + " " + status);
                }

                function processError(data, status, req) {
                    alert(req.responseText + " " + status);
                }  
        }   

    </script>
</head>
<body>
    <form name="Demo" action="POST" method="post">
        <div>
            <input type="button" value="Soap" onclick="soap()" />
            <div id="response" />
        </div>
    </form>
</body>
<html>

我访问了以下链接,但没有得到满意的答案。每个人都只是定义了不同的链接,但没有给出正确的想法,所以它无法理解,因为我是 Phonegap 的新手。

如何在PhoneGap(Android)中调用Soap Web服务 https://stackoverflow.com/questions/12346752/how-to-call-soap-web-services-in-phonegapandroid

如何在 Android 中使用 PhoneGap 和 jquery 调用基于 SOAP 的 Web 服务? https://groups.google.com/forum/#!topic/phonegap/MDKGlErSD2s

如何在PhoneGap中调用android Soap Web服务(Android) https://stackoverflow.com/questions/12650123/how-to-call-android-soap-web-services-in-phonegapandroid

如果我得到示例代码那么它将是可观的,我正在使用 Cordova.js 2.9.0


我得到了我的问题的答案。通过时存在一些问题Envelop以及我的错误肥皂行动 in 设置请求头

这是代码

<!DOCTYPE>
<html>
<head>
    <title>SOAP JavaScript Client Test</title>
    <script type="text/javascript">
        function soap() {

            var xmlhttp = new XMLHttpRequest();
            xmlhttp.open("POST","http://domain_IP:port/orabpel/default/XXNotificationListRetrieval/1.0",true);

            var sr= "<?xml version='1.0' encoding='UTF-8'?>";
                sr+="<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:wsu=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd\">";
                sr+="<soap:Header>";    
                sr+="<wsse:Security xmlns:wsse=\"http:\//docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\" xmlns=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\" xmlns:env=\"http://schemas.xmlsoap.org/soap/envelope/\" soap:mustUnderstand=\"1\">";
                sr+="<wsse:UsernameToken xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\" xmlns=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\">";
                sr+="<wsse:Username>HELLO<\/wsse:Username>";
                sr+="<wsse:Password Type=\"http:\//docs.oasis-open.org\/wss\/2004\/01\/oasis-200401-wss-username-token-profile-1.0#PasswordText\">world<\/wsse:Password>";
                sr+="<\/wsse:UsernameToken>";
                sr+="<\/wsse:Security>";
                sr+="<\/soap:Header>";  
                sr+="<soap:Body xmlns:ns1=\"http://xmlns.oracle.com/bpel/mobile/Notificationlist\">";
                sr+="<ns1:NotificationlistRetrievalREQ>";
                sr+="<ns1:NotificationlistType>Human-Offer<\/ns1:NotificationlistType>";
                sr+="<ns1:Status>TODO<\/ns1:Status>";
                sr+="<\/ns1:NotificationlistRetrievalREQ>";
                sr+="<\/soap:Body>";
                sr+="<\/soap:Envelope>";


            // Send the POST request
            xmlhttp.setRequestHeader("Accept", "application/xml", "text/xml", "\*/\*");
            xmlhttp.setRequestHeader("SOAPAction", "action_name");
            xmlhttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
            xmlhttp.send(sr);
            // send request
            // ...
                 xmlhttp.onreadystatechange = function () {
                if (xmlhttp.readyState == 4) {
                    if (xmlhttp.status == 200) {

                        //alert('done use firebug to see response');
                        alert('Response'+xmlhttp.responseText);
                    }
                    else
                    {
                        alert('Error '+xmlhttp.status);
                    }
                }
            }

        }
    </script>
</head>
<body>
    <form name="Demo" action="" method="post">
        <div>
            <input type="button" value="Soap" onclick="soap()" />
            <div id="response" />
        </div>
    </form>
</body>
</html>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Android 版 Phonegap 中调用 SOAP Web 服务 的相关文章

随机推荐

  • Xcode 4 使用不同的配置设置构建静态库依赖项

    我想知道是否可以使用不同的配置设置编译依赖的静态库 我的情况是我有一个项目 project pbxproj 它依赖于静态库 cocoa touch 项目 libStatic pbxproj 我的项目有 3 个配置设置 例如调试 发布和临时配
  • 将列表转换为 pandas 中的日期时间

    我有福尔 熊猫列表 str jan 1 jan 15 feb 1 feb 15 mar 1 mar 15 apr 1 apr 15 may 1 may 15 jun 1 jun 15 jul 1 jul 15 aug 1 aug 15 se
  • 如何在 Android 上停止 HttpURLConnection 连接

    我使用 AsyncTask 连接 URLPath 如下代码所示 Override public void onCreate Bundle savedInstanceState super onCreate savedInstanceStat
  • 从任何活动中打开侧栏应用程序启动器

    我是 Android 开发新手 我正在考虑创建一个示例启动器应用程序来替换 Android 默认启动器 我已经创建了这个启动器 但我面临几个问题 1 单击 应用程序 按钮后 我将显示设备上安装的所有应用程序 但应用程序图标的大小不同 我尝试
  • 如何将遗传算法与一些启发式算法相结合

    我正在研究大学调度问题并为此使用简单的遗传算法 实际上它效果很好 可以在 1 小时内将目标函数值从 0 优化到 90 大约 但随后这个过程会急剧减慢 需要几天时间才能得到最佳解决方案 我看到很多论文认为将其他算法与遗传算法混合是合理的 请您
  • ASP.NET MVC 自定义路由约束、依赖注入和单元测试

    关于这个话题 我又问了一个问题 ASP NET MVC 自定义路由约束和依赖注入 https stackoverflow com questions 8308642 asp net mvc custom route constraints
  • 如何使用网络音频 API 播放声音文件 Safari?

    我正在修改一个脚本来播放我在 Codepen 上找到的 mp3 以使其能够在 Safari 上运行 在 Firefox 和 Chrome 中它工作正常 但 Safari 抱怨 未处理的承诺拒绝 类型错误 没有足够的参数 索引 html 25
  • 尝试安装biopython后Conda返回未找到属性错误符号

    我正在尝试让biopython工作 似乎我在这个过程中破坏了conda 此时 将显示 conda 的帮助菜单 并且conda version回报conda 4 7 5但其他任何事情包括conda info抛出错误AttributeError
  • 在树枝中显示货币符号

    如何在树枝中显示货币符号 我保存了符号的数值 例如 for EURO 8364 for DOLLAR 36 当我渲染这些值时 被转换为 amp 并且货币符号不显示 任何想法将不胜感激 谢谢 为了做得好 你必须添加一个function htt
  • 使用knitr生成复杂的动态文档

    最小的可重现的示例 RE 下面是我尝试弄清楚如何使用knitr用于生成复杂的动态文档 这里的 复杂 不是指文档的元素及其布局 而是指非线性逻辑底层 R 代码块 虽然提供的 RE 及其结果表明solution 基于这种方法可能效果很好 我会喜
  • 如何使用 Jenkins Workflow 插件进行 SCM 轮询

    在普通的自由式项目中 我将 SCM 插件配置为指向我想要发布的 Git 存储库 并启用 轮询 SCM 选项 这允许我配置一个 Stash webhook 来告诉 Jenkins 每当有更改时到那个仓库 这样 只要将更改推送到存储库 就可以触
  • 我可以在 Microsoft hyper-v 虚拟机中运行 Android Studio(Android SDK 模拟器)吗?

    我可以在 Microsoft hyper v 虚拟机中运行 Android Studio 和 Android SDK 模拟器吗 请仔细阅读 我已经经常将 Hyper V 用于其他目的 现在我需要开发一个Android应用程序 我已经安装了新
  • 一天地理编码服务调用次数过多

    我在使用 google 地图地理编码功能时收到此错误消息 据我所知 当我超过一天 2500 个请求的免费限制时 就会发生这种情况 不过 我已经设置了一个计费选项来为额外的请求支付额外费用 但我仍然收到此错误 当我设置账单时 它要求我创建一个
  • 共享服务中的私有主题与公共只读主题

    我已经开始开发一个 Angular 8 项目 其中两个兄弟组件必须交换数据 到目前为止 方法是在父服务中拥有一个 EventEmitter 然后 子组件调用这些发射器上的发射方法 将数据传递给其他同级组件 这是一个示例案例 共享服务 不好
  • Jekyll 帖子未生成

    我正在尝试向 Jekyll 网站添加新帖子 但运行时无法在生成的页面上看到它jekyll serve 无法生成 Jekyll 帖子的常见原因有哪些 该帖子未放置在 posts 目录 当您更改collections dir在你的配置中 默认
  • 我的 docker 容器有多少个 CPU?

    我正在编写一个并行运行的库 该库经常在 docker 容器中使用 我想启动与我的 docker 容器分配的核心一样多的线程 docker 是否将 CPU 限制设置为环境变量 例如 如果我的用户在创建容器时设置了两个 CPU docker r
  • 使用 Scala 新动态类型的动态代理

    是否可以使用 Scala 新的动态类型功能创建类似 AOP 的拦截器 例如 是否可以创建一个通用的秒表拦截器 可以与任意类型混合来分析我的代码 或者我仍然需要使用 AspectJ 吗 我相当确定Dynamic仅当您选择的对象尚不具有您选择的
  • 在 Sencha Touch 中禁用轮播过度滚动/过度拖动

    在 Sencha Touch 2 轮播的末尾或开头 用户可以将项目拖过它应该能够到达的位置并显示白色背景 此处的屏幕截图 https i stack imgur com i10Ak png https i stack imgur com i
  • 在 python 3 中解析 .docx

    我目前正在编写一个 python 3 程序 该程序可以解析某些 docx 文件并从中提取文本和图像 我一直在尝试使用docx https github com mikemaccana python docx但它不会导入到我的程序中 我已经安
  • 在 Android 版 Phonegap 中调用 SOAP Web 服务

    我想打电话SOAP网络服务在Phonegap Android 我已经尝试过这段代码但是在回复文字有未定义和Status Error