简单的Phonegap应用程序来调用简单的Web服务

时间:2012-08-02 14:26:15

标签: android web-services cordova xui

我是Phonegap的初学者,我用两种简单的方法在Microsoft Visual Studio 2010中创建了一个简单的Web服务。我想从我的Phonegap应用程序为Android平台调用该服务的方法。我正在使用xui库,这个方法xhr对我来说几乎是不可理解的。我已经阅读了很多关于该主题的帖子,但我无法弄清楚如何做到这一点。

我对网络服务的链接如下所示:http://localhost/testservice/Service1.asmx

这是我的网络服务代码:

[System.Web.Script.Services.ScriptService]
public class Service1 : System.Web.Services.WebService
{

    [WebMethod]
    public string HelloWorld()
    {
        return "Hello World";
    }

    [WebMethod]
    public int Calculate(int firsNumber, int secundNumber)
    {
        return firsNumber + secundNumber;
    }
}

这是我应该测试该服务的方法:

function checkWebService() {
      var url = new "http://localhost/testservice/Service1.asmx?op=HelloWorld";
      x$('#test').xhr(url, {error: function(){alert("failed "+this.responseText)},
      callback: function(){
         alert("Success " + this.responseText);
       }
 });

我在点击按钮时调用此方法,我总是收到文本“成功”的警报,没有“响应文本”。

可能我的网址错了,但我不知道我打算输入哪个网址。 这是针对没有参数的“HelloWorld”方法,我也不知道如何使用参数调用方法。

请提供任何帮助或解释。

1 个答案:

答案 0 :(得分:0)

查看文档(我不熟悉XUI),xhr用于获取标准的Web页面/ JSON Web服务,您可以在其中调用标准Web服务,该服务将返回XML soap响应(它们是XML标签而不是HTML)。您需要解析此响应以获得所需的结果。

一个简单的方法是更改​​您的Web服务以返回JSON响应,然后在javascript中使用eval()为您提供一个" typed"对象的视图。 XUI示例here

如果您对此不熟悉,您可能会发现JQuery比XUI拥有更大的文档/社区支持。

BTW" Localhost"是一个环回地址,本质上意味着"这个"计算机,所以即使它确实有效,它也会尝试连接到移动设备(或模拟器)上的web服务,而不是通常通过URL连接到的服务器。