【问题标题】:How to invoke methods on external server / webservice?如何调用外部服务器/网络服务上的方法?
【发布时间】:2013-04-17 14:28:39
【问题描述】:

我正在尝试从 http://www.ibanbic.be/IBANBIC.asmx 调用方法

我阅读了很多论坛和教程,但所有信息都是关于在 ASP.net 中设置 Web 服务或使用 ajax / javascript。我只需要调用函数:calculateIBAN1。

一步一步的教程会很棒。

提前致谢

【问题讨论】:

  • 在谷歌上的一个简单搜索给了我大量的例子......就像这个:ctrlf5.net/?p=66

标签: asp.net web-services asp.net-mvc-4


【解决方案1】:

一步一步的教程会很棒。

在解决方案资源管理器中右键单击项目中的References 菜单并选择Add Service Reference...。在地址中键入http://www.ibanbic.be/IBANBIC.asmx,然后单击Go,然后单击OK。这将生成一个允许您调用服务的强类型客户端代理:

using (var client = new ServiceReference1.BANBICSoapClient("IBANBICSoap"))
{
    string result = client.calculateIBAN1("iso country", "some account");
}

请注意,这还会将<system.serviceModel> 添加到您的 web.config 文件中,您可以在其中管理 WCF 客户端端点。

或者,您可以使用 svcutil.exe 为服务生成客户端代理,如 MSDN 上的 this article 所示。

【讨论】:

  • system.serviceModel 被添加到 webconfig 中,所以第一部分起作用了。我正在使用 MVC4,所以当我单击按钮时,我的控制器会执行该页面的 http 帖子。您粘贴的代码应该在那个 httppost 中吗?感谢您回答顺便说一句
  • 奇怪,但我得到了这个 InnerException.Message: 'Unable to connect to the remote server'
  • @BadaBoom,这可能是因为您运行应用程序的机器无法访问托管 Web 服务的服务器。或者可能有防火墙或代理阻止访问。
  • 我添加了代码来使用没有配置文件的 Web 服务 - 在这里找到解决方案:stackoverflow.com/questions/54579/…
【解决方案2】:

ASP.NET:

首先你必须添加一个网络服务:

然后你必须实例化 web 服务并调用方法。

希望对您有所帮助!

【讨论】:

  • 感谢您的回答,但我的选项中没有添加 Web 引用,添加服务引用是(这是一样的吗?)。我正在使用 MVC4 项目,也许这就是没有网络参考的原因?
  • 好吧,这里最好解释一下 Web 引用和服务引用 (stackoverflow.com/questions/2158106/…),但为了简化起见,服务引用是新的实现方式。因此,添加服务引用并实例化方法。
【解决方案3】:

基于他们的网站 http://www.ibanbic.be/IBANBIC.asmx?op=calculateIBAN1

您可以像这样进行简单的 Ajax 调用:

var ISOCountry = 'IT';
var account = 'IT60 X054 2811 1010 0000 0123 456';
var url = "http://www.ibanbic.be/IBANBIC.asmx?op=calculateIBAN1"
        jQuery.ajax({
            type: 'GET',
            url: url,
            timeout: 4000,
            data: {'ISOcountry':ISOCountry, 'account' : account},
            success: onSuccess,
            error: onError,
            dataType: 'json',
            complete: function() {
            }
        });
}
function onSuccess(data, textStatus, jqXHR) {
    // do something
}
function onError(jqXHR, textStatus, errorThrown) {
    // do something
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多