zoukankan      html  css  js  c++  java
  • 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,接口可用。

     

  • 相关阅读:
    如何吸引小白用户爱上你的游戏?
    产品经理应聘之感受漫谈
    罗永浩Vs王自如:浮躁的世界该如何降温?!
    从锤子手机谈产品的逼格
    博客园与51CTO博客之产品用户体验分析
    web网站 Vs 移动App 谁更能打动你?之 产品经理篇
    不要只甘于做一个程序员
    我的程序员工作经历(二) 之 谈合作
    OpenCV 之 神经网络 (一)
    Qt 之 QtConcurrent
  • 原文地址:https://www.cnblogs.com/cleverZane/p/9087004.html
Copyright © 2011-2022 走看看