Pb调用Webservice

来源:互联网 发布:在java中 编辑:程序博客网 时间:2024/05/17 07:01

而现在WebService非常火,如果将两者结合起来呢,比如:用Net写好的WebService被Pb调用,而且还可以发布成接口形式,被其他公司所调用,合乐而不为呢?

 

先说一下开发环境:32位Win7旗舰版+PB11.5

其实在PB10.0出来时候,就已经支持调用WebService方式了。如下面步骤即可实现调用。

l 步骤1

在Net中创建一个WebService方法,用于被Pb调用,如图-1所示

clip_image001

图-1

l 步骤2

将此WebService发布,最好发布成IIS方式,如图-2所示。

clip_image003

图-2

这里有一点说明下,发布成IIS以后,是可以直接在浏览器里打开的,但它的后缀是asmx,而PB需要的是wsdl方式,就是说如何生成Wsdl文件?如下图-3所示,另存为即可并将这个文件存储起来。

clip_image004

图-3

好了,准备工作基本完成

l 步骤3

创建PB的解决方案文件,如图-4所示

clip_image005

图-4

这里面要必须引用一个pbwsclient11.pbd文件,不然,会调用不成功。这个文件在安装路径里就可以找到。

l 步骤4

从此步开始,我们按照创建对象创建一步一步操作即可,如下图列表所示

clip_image006

如图-5所示,选择Web Service Proxy Wizard图标

clip_image007

如图-6,这个选项勾不勾没有关系

clip_image008

如图-7,这个就要输入我们生成好的WSDL文件路径了(绝对路径)

clip_image009

如图-8所示,如果能到这里,就基本没有问题了

clip_image011

如图-9所示,到这里时,一定要编译下,就是保存图标的后面一个图标,余下事情就是编写代码,如图-10所示 ,是最终样子。

clip_image012

图-10

 

l 步骤5

创建一个CustomObject对象,声明一个方法,直接调用即可,如图-11所示

(注意:下面的lsc_conn.createinstance(lsv_obj,“service1soap”) 在pb9时报错,

改为:  lsc_conn.createinstance(lsv_obj,“service1soap”,'http://wpvs2008/countwebservice/countwebservice.asmx')后可以。

 

 

clip_image014

图-11

l 步骤6

就可以像调用PB本身方法一样调用了。如图12和13

clip_image015

图-12

clip_image016

图-13

 

 

 

 

附:

访问webServices时遇到“测试窗体只能用于来自本地计算机的请求”的解决办法
在system.web节中加上以下即可解决

<webServices>
         <protocols>
            <add name="HttpSoap"/>
            <add name="HttpPost"/>
            <add name="HttpGet"/>
            <add name="Documentation"/>
         </protocols>
</webServices>

 

 

 

参考:

http://blog.csdn.net/txchen/archive/2007/10/18/1831480.aspx

http://kb.cnblogs.com/a/1688860/

http://www.cnblogs.com/hhq80/archive/2007/02/27.html

原创粉丝点击