老问题求教:PB怎样连接带身份验证的Webservice

nocry115 2016-08-10 10:23:50
正常的引用没有身份验证的步骤:
1、通过webservice proxy wizard或webservice proxy 创建对象
webservice wsdl url 里输入WSDL网址,会出现其中服务
2、双击webservice proxy,编译,生成如service1soap
3、引用
soapConnection conn // Define SoapConnection
service1soap proxy_obj // Declare proxy
int rVal
conn = create SoapConnection
rVal = Conn.CreateInstance(proxy_obj, "service1soap",)
……
==================================
但是,对于有身份验证的WSDL,这第一步就绕不过去了!

在浏览器中输入用户名密码可以进去看到wsdl的xml格式内容


查了下这个问题,还是一头雾水,唯有xiongxiao同学的方案:
==================================
近日碰上不能使用匿名访问web service的问题,真是头大啊,搞了半天,才在pbwsclient110.pbx导入的的对象中找了到setbasicauthentication( string domain, string user ,string password) ,看着这函数有点象C#中的 ws.Credentials = new NetworkCredential(userid,password,domainname),结果一试,还真成功了,调用方式是:
在服务createinstance之前,先soapconnection.setbasicauthentication('','user','password'),第一个参数可以是空字符串
OK就这样就行了
================
还是那个问题:这个soapconnection如何创建啊?在第一步建立对象webservice proxy wizard时就无法进行啊?
求助:请问PB引用带身份验证Webservice的具体的解决步骤!


...全文
694 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangyangziwo 2016-09-02
  • 打赏
  • 举报
回复
PB不认识就没办法了,用.net引擎能识别 .net的WS,用简单引擎可以识别java和PB自己的WS,可能SAP的不行吧,现在他们是一家,不识别,也挺奇怪 有功夫的话,你可以研究一下里边的语法,看有啥区别吗? WSDL也是xml文档
nocry115 2016-08-12
  • 打赏
  • 举报
回复
引用 4 楼 zhangyangziwo 的回复:
是不是输入用户名和密码,就能得到wsdl啦 你把wsdl保存为文件, 在webservice proxy wizard 输入 本地的wsdl的路径就行了
现在发现不是,或者不仅仅是用户名密码的问题,而是别人的这个wsdl,PB居然识别不了!无论是PB9还是PB11.5! 我把wsdl保存为本地文件了,PB居然识别不了! 对方应该是用SAP系统生成的wsdl,PB可以识别自己生成的WebService和网上一些通用的wsdl,但识别不了这个wsdl! 而用第三方工具证明这个wsdl确实有效
sbks 2016-08-11
  • 打赏
  • 举报
回复
你得使用webservice proxy去生成service1soap这个代理对象 如果wizard找不到对方的webservice,那就换一个soap协议试试,pb自带有两种,一种不使用.net engine,另一种使用.net engine,你都换着试试,再不行,就找第三方的soap协议对象试试,再不行,得检查你的wdsl地址是否正确,或者用其它语言试调用对方的webservice了(比如请使用php或其它语言的人试调用一下).后两种办法我没试过,只是个思路给参考,有请其它大神补充了
zhangyangziwo 2016-08-11
  • 打赏
  • 举报
回复
是不是输入用户名和密码,就能得到wsdl啦 你把wsdl保存为文件, 在webservice proxy wizard 输入 本地的wsdl的路径就行了
nocry115 2016-08-10
  • 打赏
  • 举报
回复
引用 1 楼 sbks 的回复:
soapconnection这个对象,在pb的share目录下,有一个类似于pbsoapclient120.pbd的文件,把它加入到你的target里


这个做了,我用的PB9,加入了pbsoapclient90.pbd,请问下一步呢?
(另一工作环境PB11.5也加入了pbsoapclient115.pbd仍然不行)
webservice proxy wizard创建不了,发现不了Service;在Proxy setting中设置端口用户名密码问题依旧:

webservice proxy对象创建不下去了!这个是问题的关键啊。兄弟们碰到过没?
//
soapConnection conn // Define SoapConnection
service1soap proxy_obj // Declare proxy
int rVal
conn = create SoapConnection
rVal = Conn.CreateInstance(proxy_obj, "service1soap",)
//
webservice proxy对象创建没有创建,代码service1soap proxy_obj中的service1soap就无法声明!

请问如何写代码呢?避开第2行的Declare proxy变量声明的话

sbks 2016-08-10
  • 打赏
  • 举报
回复
soapconnection这个对象,在pb的share目录下,有一个类似于pbsoapclient120.pbd的文件,把它加入到你的target里

662

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder Web 应用
社区管理员
  • Web 应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧