Winform 连接Web Service 记录

一般自己控制的项目都会使用webApi,比较少使用WS,感觉要配置一堆东西很繁琐。

场景:多个系统间数据交互。

角色:我们属于下游系统,要把一部分数据格式化后上传到SAP中。

SAP提供了一个WS,使用VS自带的“添加引用服务”,录入WS地址,自定义命名空间,VS会自动生成一个类,类里包含了 WS中所有的方法、类型等等(因为做WS的语言不尽相同,所以使用的关键字也不同,在生成的类中若存在我们语言的关键字,须要自己替换下,保证编译通过);同时会在配置文件中插入WS相关的信息(大概就是SOAP协议版本,ENDPOINT等等),须要注意的是根据WS提供的WSDL描述文件不同,生成的配置可能会出现若干段,百度了下好像是指使用的SOAP协议版本,我们只要保留一段即可

由于WS端设置了密码,所以在以上操作的时候系统会要求你输入帐号密码,输入后VS好像自动记录了,但我始终没有找到这个账号密码保存在哪里?如果不能配置的话WS端改了帐号密码我们不得重新编译代码?

经过上面的设置在写代码调试WS即可。

后来为了解决配置帐号密码的问题,按照别人帖子的指导,在“添加引用服务”→“高级”→“添加WEB引用”(在这个按钮旁边写入一段话“添加WEB引用而不是服务引用。这将基于.net framework 2.0 WEB服务技术生成代码”)后面的操作跟上面相同。

这里面有个类

System.Net.NetworkCredential(account,password)

接着按照WS的要求,提供数据,然后发送时带着帐号密码即可。

最近又碰到一个问题:

做法跟上面一样,别人的给的WEB引用地址后面会有若干个"?变量=值"这种结构,但是在添加服务引用时生成的配置文件中有一段<XXXX.Properties.Settings>

其中的VALUE值也是这个引用地址,但是会少了“?”后面的内容。

一直搞不清楚啥原因,测试把“?“”后的内容追加到VALUE,接口可用。

 

原文地址:https://www.cnblogs.com/cleverZane/p/9087004.html