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,接口可用。
posted on 2018-05-25 10:15 Zane.zhang 阅读(229) 评论(0) 编辑 收藏 举报