BCB通过WSDL Importer调用WebServers接口

BCB访问WebServers接口

 

1.      打开编译器  File->new->Others->

2.      

3.      选择WebServers选项

4.      双击 WSDL Importer选项

5.      

6.      输入链接这里输入腾讯QQ状态查询链接http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl

7.      

8.      Next->Finish

9.      自动生成"qqOnlineWebService.h"和"qqOnlineWebService.cpp"文件

10.HTTPRIO* rio = new THTTPRIO(0);的后面,加上以下两句话:

 
    rio->HTTPWebNode->UseUTF8InHeader = true;
    rio->Converter->Options<<soUTF8InHeader;
    //

11.static voidRegTypes(){这个函数的最后,我们需要加上下面一段话}

InvRegistry()->RegisterInvokeOptions(__interfaceTypeinfo(qqOnlineWebServiceSoap),ioDocument);

 二、添加THTTPRIO控件

这个控件的作用是

THTTPRIOuses HTTP messages to call remote interfaced objects using SOAP.

UseTHTTPRIO to generate statically-linked calls to invokable interfaces on aremote Web Service application.

里面有几个属性设置下

从下面一个属性开始

1,WSDLLocation,下拉菜单选中

2,Service,下拉菜单选中

3,Port,下拉菜单选中,这里有2个选项,一个是ABCDWebServiceSoap和ABCDWebServiceSoap12,我们选中第一个。(因为BCB6.0还不能很好支持WebServiceSoap12)

4.调整THTTPRIO控件的字符集调整

这个控件的属性有两处关于utf8的bool值,请都改成true就可以了。(那2处都很好找,属性名就有utf8字眼)

 

三、添加引用

1,添加头文件

在窗体Form1.h文件里

添加qqOnlineWebService.h的头文件。

#include <Rio.hpp>

#include <SOAPHTTPClient.hpp>

#include "qqOnlineWebService.h"

 

四、调用如下:在单击事件中实现:

NS_qqOnlineWebService::_di_qqOnlineWebServiceSoapp =NS_qqOnlineWebService::GetqqOnlineWebServiceSoap(true,"http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl");

      if(!p)

       htpr1->QueryInterface(p);

     if(p)

     {

       str = p->qqCheckOnline("8698053");//8698053

       ShowMessage(str);

       }



最后,如出现“Access Violation at address”错误,则用一下方法:

右键“我的电脑”。点击“属性”。

高级-》性能-》设置。

在“性能选项”中单击“数据执行保护”。

单击“添加”,选择要运行的程序。

 OK。



你可能感兴趣的:(BCB通过WSDL Importer调用WebServers接口)