如何在 SENCHA TOUCH 中使用 SOAP Web 服务?

Posted

技术标签:

【中文标题】如何在 SENCHA TOUCH 中使用 SOAP Web 服务?【英文标题】:How to consume SOAP web service in SENCHA TOUCH? 【发布时间】:2012-03-05 08:06:54 【问题描述】:

我是 sencha touch 的新手,我想在 sencha touch 中使用 soap web 服务。我为此编写了代码,但问题是我得到的只是纯 html 内容作为响应,而不是 soap 对象。而且我不知道如何从 web 服务调用特定方法到 sencha touch。

这是我的代码:-

Ext.Ajax.request(

    method: 'get',
    url: 'http://192.168.1.15:80/himanshu/helloworldwebservice.asmx',
    success: function (response, request)  
    alert('Working!') 
    alert(response.responseText)
    console.log('Response:-'+response.responseText)
    ,
    failure: function (response, request) 
    alert('Not working!')
    console.log('Response Status:- '+response.status)
    

);

编辑:- 好的,我想到了从 here 调用 Web 服务的特定方法。就像我有 HelloWorld() 方法,它只返回一个字符串,我的网址是 @987654325 @。 我可以通过这样设置我的 url 来调用 HelloWorld() 方法:- http://192.168.1.15:80/himanshu/helloworldwebservice.asmx/HelloWorld

但这对我不起作用。每次我运行程序时都会生成“不工作”警报,500 是我得到的响应统计信息。请让我了解如何从 web 服务调用方法.thanx提前。

【问题讨论】:

在几天前看到这个link,我发现了同样的问题,然后得到了解决方案。 【参考方案1】:

您将无法以这种方式使用您的 SOAP 网络服务,因为对 asmx url 执行 GET 请求只会返回您列出您的网络服务方法的页面的 HTML 内容。

使用 SOAP Web 服务依赖于 POST 请求,并且需要您发送正确的 XML SOAP 请求。我可能会建议您使用 http://archive.plugins.jquery.com/project/jqSOAPClient 之类的东西来执行您的 SOAP 调用并检索您的数据,然后将它们传递回您的 Ext 代码。

希望对你有帮助

纳赛夫

【讨论】:

我不想在我的应用程序中使用 jQuery,所以你能告诉我如何通过 AJAX 调用来实现这一点。 对不起,我有一段时间没有看邮箱。你成功了吗? 您能否分享一下解决方案,我很想知道您是如何管理它的 @himanshu : 你能分享你的解决方案吗?因为我长期以来一直在寻找一种方法来做到这一点。 这是我发布的有问题的工作代码....我现在解决了 web 服务的问题。【参考方案2】:

您的代码绝对没问题。我认为您正在从服务器端发送 HTML 数据。请检查 Chrome/Safari 开发人员工具中的响应。另外,使用 console.log() 函数代替 alert() 函数以获得更好的视图。

另外,在浏览器中打开这个 URL:“http://192.168.1.15:80/himanshu/helloworldwebservice.asmx”和页面的“查看源代码” - 你会看到你发送的究竟是什么。

【讨论】:

我知道我正在获取 URL 的 html 内容:- "192.168.1.15:80/himanshu/helloworldwebservice.asmx" 。我的问题是我不知道如何调用上述 Web 服务中存在的方法?跨度> 我还检查了 chrome 和 safari 中的响应,但只收到带有 msg“Not Working”的对话框。 创建一个新文件,编写一个 switch-case 并调用不同的函数。发送一个额外的参数,您将在该参数上执行 switch case。 但是我将如何使用外部 URL 调用 Web 服务的不同方法。我的网址:-“192.168.1.15:80/himanshu/helloworldwebservice.asmx”;托管在不同的计算机上。 看,忘记 Sencha 并尝试直接从浏览器访问 url。您自己需要确保如何调用这些方法。因此,如果您在浏览器中获取任何原始数据,您的应用中也会使用相同的数据。【参考方案3】:

您可以使用:SOAP 数据代理 http://www.sencha.com/blog/taking-a-look-at-the-new-sencha-soap-data-proxy

【讨论】:

以上是关于如何在 SENCHA TOUCH 中使用 SOAP Web 服务?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Sencha Touch 2 中使用 Sqlite

如何使用 sencha-touch.jsb3 构建 Sencha Touch?

如何在 Sencha Touch 2 模型中存储日期

如何在 Sencha Touch tabBar 中使用附加图标?

iPhone Sencha Touch - 如何在 sencha touch 中将表格视图添加到拆分视图

如何在 sencha touch 或架构师中获取设备语言