社区
HTML/XML
帖子详情
VS2010下面怎么没有wsdl.exe呢?
lionghua
2011-05-24 10:20:05
如题,看了看我的2010版没有那个文件,怎么办好呢,高手指点一下,谢谢!!
...全文
353
3
打赏
收藏
VS2010下面怎么没有wsdl.exe呢?
如题,看了看我的2010版没有那个文件,怎么办好呢,高手指点一下,谢谢!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lionghua
2011-05-24
打赏
举报
回复
我是想把服务器的wsdlwen文件转化为代理类
lionghua
2011-05-24
打赏
举报
回复
utimate 版,最终版。
kyotrue
2011-05-24
打赏
举报
回复
2010有几个版本的,有个专门的Web开发版版的,你确定你装了正确的版本?
Delphi 调用WebService 出错
Delphi 调用WebService 出错 1.新建一个App, 放上一个button, listbox, HTTPRIO 2.新建webservices -$amp;>amp;$nbsp;
wsdl
Inmporter 导入你这个网站的
Wsdl
让程序知道调用规则 不出意外会生成个WeatherWebService.pas ,主窗体引用它 3.设置HTTPRIO的 port, service,
wsdl
Location 会下拉出来 4.写点代码吧 //得到支持的地区 procedure TForm1.Button1Click(Sender: TObject); var AOS,ss: ArrayOfString; I: Integer; begin AOS := (HTTPRIO1 as WeatherWebServiceSoap).getSupportProvince; for I := Low(AOS) to High(AOS) do Listbox1.Items.Add(AOS[I]); -- 可以把所有省份列出来 但是使用
下面
代码,出现错误: -- 取省份下的城市 ss := (HTTPRIO1 as WeatherWebServiceSoap).getSupportCity('广西') -- 取城市的天气 ss := (HTTPRIO1 as WeatherWebServiceSoap).getWeatherbyCityName('深圳'); ---- 错误信息为: Project Project1.
exe
raised exception class ERemotableException with message '服务器无法处理请求。 ---$amp;>amp;$nbsp;未将对象引用设置到对象的实例。'. Process stopped. Use Step or Run to continue. InvRegistry.RegisterInvokeOptions(TypeInfo(WeatherWebServiceSoap), ioDocument); 把这句加上2005前的版本不加这个就出错,我也是找了很久才发现的 而且要加到initialization 最后一行,我加到initialization 之后紧接着第一行,就一直报错。
gsoap 2.8 (SOAP/XML 关于C/C++ 语言的自动化实现工具内附 CSharp webservice例子,及GSOAP client和server例子)
gSOAP编译工具提供了一个SOAP/XML 关于C/C++ 语言的实现,从而让C/C++语言开发web服务或客户端程序的工作变得轻松了很多。绝大多数的C++web服务工具包提供一组API函数类库来处理特定的SOAP数据结构,这样就使得用户必须改变程序结构来适应相关的类库。与之相反,gSOAP利用编译器技术提供了一组透明化的SOAP API,并将与开发无关的SOAP实现细节相关的内容对用户隐藏起来。 gSOAP的编译器能够自动的将用户定义的本地化的C或C++数据类型转变为符合XML语法的数据结构,反之亦然。这样,只用一组简单的API就将用户从SOAP细节实现工作中解脱了出来,可以专注与应用程序逻辑的实现工作了。gSOAP编译器可以集成C/C++和Fortran代码(通过一个Fortran到C的接口),嵌入式系统,其他SOAP程序提供的实时软件的资源和信息;可以跨越多个操作系统,语言环境以及在防火墙后的不同组织。 gSOAP使编写web服务的工作最小化了。gSOAP编译器生成SOAP的代码来序列化或反序列化C/C++的数据结构。gSOAP包含一个
WSDL
生成器,用它 来为你的web服务生成web服务的解释。gSOAP的解释器及导入器可以使用户不需要分析web服务的细节就可以实现一个客户端或服务端程序。
下面
是gSOAP的一些特点: ×gSOAP编译器可以根据用户定义的C和C++数据结构自动生成符合SOAP的实例化代码。 ×gSOAP支持
WSDL
1.1, SOAP 1.1, SOAP 1.2, SOAP RPC 编码方式以及 literal/document 方式. ×gSOAP是少数完全支持SOAP1.1 RPC编码功能的工具包,包括多维数组及动态类型。比如,一个包含一个基类参数的远程方法可以接收客户端 传来的子类实例。子类实例通过动态绑定技术来保持一致性。 ×gSOAP 支持 MIME (SwA) 和 DIME 附件包。 ×gSOAP是唯一支持DIME附件传输的工具包。它允许你在保证XML可用性的同时能够以最快的方式(流方式)传递近乎无大小限制的二进制数据 。 ×gSOAP 支持 SOAP-over-UDP。 ×gSOAP 支持 IPv4 and IPv6. ×gSOAP 支持 Zlib deflate and gzip compression(for HTTP, TCP/IP, and XML file storage)。 ×gSOAP 支持 SSL (HTTPS)。 ×gSOAP 支持 HTTP/1.0, HTTP/1.1 保持连接, 分块传输及基本验证。 ×gSOAP 支持 SOAP 单向消息。 ×gSOAP 包含一个
WSDL
生成器,便于web服务的发布。 ×gSOAP 包含一个
WSDL
解析器(将
WSDL
转换为gSOAP头文件),可以自动化用户客户端及服务端的开发。 ×生成可以单独运行的web服务及客户端程序。 ×因为只需要很少内存空间,所以可以运行在类似Palm OS, Symbian, Pocket PC的小型设备中。 ×适用于以C或C++开发的web服务中。 ×跨平台:Windows, Unix, Linux, Mac OS X, Pocket PC, Palm OS, Symbian等。 ×支持序列化程序中的本地化C/C++数据结构。 ×可以使用输入和输出缓冲区来提高效率,但是不用完全消息缓冲来确定HTTP消息的长度。取而代之的是一个三相序列化方法。这样,像64位 编码的图像就可以在小内存设备(如PDA)中以DIME附件或其他方式传输。 ×支持C++单继承,动态绑定,重载,指针结构(列表、树、图、循环图,定长数组,动态数组,枚举,64位2进制编码及16进制编码)。 ×不需要重写现有的C/C++应用。但是,不能用unions,指针和空指针来作为远程方法调用参数的数据结构中元素。 ×三相编组:1)分析指针,引用,循环数据结构;2)确定HTTP消息长度;3)将数据序列化位SOAP1.1编码方式或用户定义的数据编码方式。 ×双相编组:1)SOAP解释及编码;2)分解“forward”指针(例如:分解SOAP中的href属性)。 ×完整可定制的SOAP错误处理机制。 ×可定制的SOAP消息头处理机制,可以用来保持状态信息 2 gSoap2.2版与gSOAP 2.1版(或以前版本)的不同 如果你是从2.1版升级到2.2或以后版本,请注意这些变化。 为了能够分离传输、内容编码、映射中的接收/发送设置,改变了运行时选项及标志。这些标志分布再四个类中:传输(IO),内容编码(ENC
C++实现56dxw短信验证码WebService接口--
C++实现56dxw短信验证码WebService接口。 编译工具gsoap-2.8.zip 因为长名字关系,请到根目录解压后再拷贝进来,直接解压可能会解压报错。 用
VS
.NET2003 开发游戏程序的时候,有一个登录功能模块,需要短信验证码。 56短信网有两种接口,一是HTTP,二是 Web Service。 短信验证码,采用HTTP接口,在客户端发送是不实际的,因为一是受制于客户端网络稳定性,二是容易被客户端拦截URL, 三是被拦截后,容易泄漏56短信网的帐号密码,导致被盗用,产生不安全因素。 服务端采用HTTP接口,也不是很好,服务端连接众多客户端,压力很大,如何有效执行URL和如何得到返回值都是问题。 服务端毕竟不是网站,需要及时有效响应。 因此,采用 服务端 + Web Service 方案很有必要。 其实,Web Service是什么,之前我也不懂,翻阅了大量百度后,知道SOAP这个东西来实现。 非常感谢这篇文章 http://hi.baidu.com/winnyang/blog/item/1138fad9bfac1be338012fdf.html 现在把我C++写的例子实现简单介绍下,与大家共享: 1、下载工具gsoap-2.8。gsoap是个好工具,包装了SOAP到C++的实现,不需要我们再辛苦。(例子中附带这个工具) gsoap-2.8.zip 因为长名字关系,请到根目录解压后再拷贝进来,直接解压可能会解压报错。 2、我例子目录
下面
有个文件夹gsoap,里面 soapcpp2.
exe
、
wsdl
2h.
exe
、wsmap.dat、gsoap.bat、stdsoap2.h、stdsoap2.cpp 这几个文件不要删除。 其它文件可以删除,通过执行gsoap.bat重新生成。 3、执行gsoap.bat生成文件。 gsoap.bat内容:
wsdl
2h.
exe
-o 56dxw_webservice.h -t wsmap.dat -e http://jiekou.56dxw.com/WebServiceInterface.asmx?
wsdl
soapcpp2 -i -C -x 56dxw_webservice.h -I ..\gsoap-2.8\gsoap\import del /s /f /q WebServiceInterfaceSoap.nsmap.cpp rename WebServiceInterfaceSoap.nsmap WebServiceInterfaceSoap.nsmap.cpp 各参数意义稍微解释(网上复制): -t 定义std:string到C++中的字符串转化规则, 当前例子采用UNIOCDE编码编译,请在wsmap.dat 中加上 xsd__string = | std::wstring | std::wstring* 这句话 -o 文件名,指定输出头文件 -n 名空间前缀 代替默认的ns -c 产生纯C代码,否则是C++代码 -s 不要使用STL代码 -t 文件名,指定type map文件,默认为typemap.dat -e 禁止为enum成员加上名空间前缀 -C 仅生成客户端代码 -S 仅生成服务器端代码 -L 不要产生soapClientLib.c和soapServerLib.c文件 -c 产生纯C代码,否则是C++代码(与头文件有关) -I 指定import路径(见上文) -x 不要产生XML示例文件 -i 生成C++包装,客户端为xxxxProxy.h(.cpp),服务器端为xxxxService.h(.cpp)。 4、创建
VS
.NET2003对话框例子 (1)设置项目属性 设置 不使用预编译头 和 使用 Unicode 字符集(是否使用UNICODE根据项目实际情况,只要注意字符串转换) (2)项目中添加以下文件:注意,这些文件都是通过gsoap自动生成,无须修改。 stdsoap2.cpp stdsoap2.h soapC.cpp soapH.h WebServiceInterfaceSoap.nsmap.cpp soapWebServiceInterfaceSoapProxy.cpp soapWebServiceInterfaceSoapProxy.h (3)在对话框.h文件中 添加 #include "gsoap/soapWebServiceInterfaceSoapProxy.h" using namespace std; (4)在对话框.cpp文件中 添加 void Ctest2Dlg::OnBnClickedButton1() { #ifdef _UNICODE #define tstring wstring #else #define tstring string #endif WebServiceInterfaceSoapProxy gs; _ns1__SendNote SendSms; _ns1__SendNoteResponse Resp; CString str; GetDlgItemText(IDC_EDIT3,str); tstring handtels(str); tstring content(TEXT("验证码内容")); GetDlgItemText(IDC_EDIT1,str); tstring userName(str); //请测试人员此处直接输入用户名和密码 GetDlgItemText(IDC_EDIT2,str); tstring password(str); tstring cid(TEXT("713")); tstring sendtime(TEXT("")); tstring smsnumber(TEXT("1061")); SendSms.handtels = &handtels; SendSms._USCOREcontent = &content; SendSms.userName = &userName; SendSms.password = &password; SendSms.cid = &cid; SendSms._USCOREsendtime = &sendtime; SendSms._USCOREsmsnumber = &smsnumber; if(gs.SendNote(&SendSms;, &Resp;) == SOAP_OK) { int nReturn = Resp.SendNoteResult; switch( nReturn ) { case 1:str.Format(TEXT("发送成功"));break; case -1:str.Format(TEXT("用户名密码不正确"));break; case -2:str.Format(TEXT("内容不能大于70个字"));break; case -3:str.Format(TEXT("验证此平台是否存在"));break; case -4:str.Format(TEXT("提交号码不能为空或客户余额为0"));break; case -5:str.Format(TEXT("客户剩余条数不够要发送的短信数量"));break; case -6:str.Format(TEXT("非法短信内容"));break; case -7:str.Format(TEXT("返回系统故障"));break; case -8:str.Format(TEXT("网络性错误,请稍后再试"));break; default:str.Format(TEXT("未知错误"));break; } AfxMessageBox(str); } }
.net自带
wsdl
.
exe
的用法与参数说明
参照:
VS
2010
根据
WSDL
文件生成.cs文件 .net自带
wsdl
.
exe
的用法与参数说明
WSDL
.
EXE
简化使用: 打开Microsoft Visual Studio
2010
->工具->Visual Studio 命令提示 输入:
wsdl
wsdl
文件路径(包括文件名) /out:CS文件路径(包括文件名) 可生成代理类(WebClient.c
wsdl
.
exe
的用法与参数说明
打开.net自己带的Visual Studio .NET 2003或2005命令提示 输入
wsdl
/language:VB /n:mynamespace /out:myProxyClass.cs http://hostServer/WebserviceRoot/WebServiceName.asmx?
WSDL
默认为C#语言 /language:VB 为输出语言 /n:myna...
HTML/XML
3,055
社区成员
8,066
社区内容
发帖
与我相关
我的任务
HTML/XML
VC/MFC HTML/XML
复制链接
扫一扫
分享
社区描述
VC/MFC HTML/XML
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章