C#比较苦手,自己也查了不少,比较小白看不懂,还请各位大神指点一二,下面是我用python的suds的库访问的webservice
现在的VS,添加webservice引用已经是WCF的方式了。
会自动生成xxxClient 类, new 一个 Client,传入request参数就好了。
为什么C#和Python调用方法都变了,Python还是String,C#成了方法,该怎么处理
@a5966118:
python C# 里面都是sendComfirmInfo方法。 区别应该是参数不一样:
python参数是jmXML变量, 变量类型是字符串
C# 的参数被包装成一个对象。这个对象应该有字符串属性。所以你可以new这个对象,然后把字符串复制给对象的属性。
var info = new SendComfirmInfo { Value= "字符串参数"};
sendweb1.sendComfirmInfo(info);
这里的生成的属性名,可能不是Value,你要自己看一下。
@刀是什么样的刀: 谢谢大佬,但是值该怎么取呢不能强转也不能点出来,之前没有接触过C#,硬着头皮搞
@刀是什么样的刀:
@刀是什么样的刀: 已经通了,谢谢大佬
@刀是什么样的刀: 大佬,我有相识的问题想请教你——C#引用spyne生成的webservice,用的是spyne官网给的helloworld的例子,为什么实例化之后使用的时候出错呢?
@淡水鱼徜徉在大海:
这是编译错误。你需要先new 一个对象,传到方法里面去。
var hello = new HelloTest.say_hello();
//这里设置hello的属性
HW.say_hello(hello);
@刀是什么样的刀: 非常谢谢你,已经解决了,的确是你说的这个步骤。
后来我自己写了一个两数相加的函数,新建对象后可以直接设置属性。
之前可能是say_hello本身的问题,导致var hello = new HelloTest.say_hello(); 之后,输入
hello.之后没有出现相关的属性,所以不知道怎么设置hello的属性。
根据wsdl地址自动生成本地代理呀(服务引用),如果还不行,就自己拼装http请求,然后再自己解析返回的http body。不过我觉得应该没这么惨吧。添加引用试试。
另外,webservice客户端是什么意思,webservice难道不是应该是服务端的吗
我之前用了服务引用和web服务引用,不知道怎么传数据,C#太苦手了,完全不知道该怎么用.之前我是写安卓的,可能程序水平偏低吧,python也是自学的,webservice客户端就是webservice的客户端负责向webservice发送数据,我之前没有描述清楚,应该是客户端才是
在项目里点右键引用.把wsdl地址填进去.
就会自动生成代理.然后你new一个代理类client就可以点出来方法调用了.
我是看别人的博客写的webservice,没有Client方法,调用也是问题内发的图调用的,我点了resultinfo方法,却不能传参数不知道为什么