asmx web服务调用无效 参数_用C++写出HTML,使用web服务,可以免费搭建个人博客!...

d6b8f1b5d3a63a5b7401bb1fadf75cba.gif

点击上方蓝色字体,关注我们

web服务是.net中让人激动的部分,几乎所有你能叫出名字的服务都有一些执行服务器端代码的机制:正巧每种语言都一个类库,因此在HTTP中生成一个GET请求变得很简单,解析出XML也有了些捷径。

这种方案给你提供了一种跨平台,跨语言,跨厂商乃至一切的方法,只要它们都在INTERNET上或是以其他的方式相连,我们就可以在某个程序的代码中调用另外一个完全不同的机器上的代码。

b2fdae8d120a4b5562a4d8cb57e86315.png

这就是隐藏在WEB服务背后的基本观念。使用类似于WEB服务描述语言(说 wizdle会更酷一些)开发有一定的标准,它们涵盖了这些技术细节。

如果你用Visual Studio.NET创建一个WEB服务,它将满足这些标准。如果你只是需要WEB服务,而不管它是如何创建的,通过Visual  Studio.NET,你会发现借用他人的代码是如此简单。

0f5bc569f1a42d7b4c1a685d031290f2.png

编写一个WEB服务

为了编写一个WEB服务,你至少要用一种方法写一个类。这个类必须有WebService属性,方法也要有WebMethod属性。WEB方法能够接受和返回任何可用的类型,包括你定义的对象实例。它们能做任何事情:维护数据库数据的内外一致性,做任何形式的运算,甚至调用另外一个WEB方法来完成任务。

在Visual Studio.NET中创建一个新工程。在Visual C++工程模板中,选择可管理的WEB服务。修改后是:

<@ WebService Class=Calculator.CalculatorService %>

我获得了一个叫做HelloWorld()的方法,把它改成Add()很简单——我仅仅更改了.cpp文件和.h文件的名称,改变了签名以便它能够接受浮点数,然后加了些代码以返回和。

28e7e22087e1b37edd72d6c368233fb2.png

类声明的结束部分:

using using namespace System;using namespace System::Web;using namespace System::Web::Services;namespace Calculator{public __gcclass CalculatorService : public WebService{public:[System::Web::Services::WebMethod]double Add(double x, double y);};}

1

实现的部分:

#include "stdafx.h"#include "Calculator.h"#include "Global.asax.h"namespace Calculator{double CalculatorService::Add(double x, double y){return x + y;}}第一个 CGI 程序#include using namespace std;int main (){     cout << "Content-type:text/html\r\n\r\n";  cout << "\n";  cout << "\n";  cout << "Hello World - 第一个 CGI 程序\n";  cout << "\n";  cout << "\n";  cout << "Hello World! 这是我的第一个 CGI 程序\n";  cout << "\n";  cout << "\n";  return 0;}
0f5bc569f1a42d7b4c1a685d031290f2.png

使用WEB服务

写一个WEB服务相当简单:你只需要一个类属性,一个方法属性和calculator.asmx文件,而这三个都由Visual Studio生成。

最简单的方法是键入URL到Calculator.asmx然后按回车。你会看到和以前运行WEB服务工程时同样的文件。点击添加参数结束这个过程。

81d6f1c1f5d5a798b9fbeaec05bcd5c9.png

65f33a6c6f74f21a70d7731a635ed17f.gif

参数一旦添加,调用WEB服务就像调用任何C++类一样。添加参数建立一个头文件,这个文件在任何你想使用WEB服务时都可以包括进去。

cda59ac9c2a01e5a9b6d8e333d95f84d.gif

#include "stdafx.h"#using #include #include "WebService.h"using namespace System;// This is the entry point for this applicationint _tmain(void){CalculatorService * Calc = new CalculatorService;System::Console::WriteLine("1 plus 1 is ",__box(Calc->Add(1,1)));return 0;}

点击 阅读原文 ,好运到

bb58d0954e488c19ecb9462f82c5708d.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值