C# WebService调用Java WebService(返回自定义对象) ,为什么接收为null

alexmahoro007 2015-01-30 05:28:57
SoapUI测试结果如下(左边是传的两个参数,右边是返回值):


返回的translist是有内容的,但是在vs内调用却返回为null,如下图:



返回的是userLocationTransform这个自定义类型,请教C#客户端这边怎么设置,怎样才能返回正常
...全文
590 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
BrightFireOfCy 2015-02-03
  • 打赏
  • 举报
回复
第一行的URL是webservice的发布地址,比如.net的话一般是xxxx.asmx结尾的。 第七行的URL是soapaction,其实不一定一定是一个url,可以是任何字符串,这个是用来标示运行webservice里的哪个方法用的,但是不是必须的,要看webservice的服务器端是如何定义的,有些必须要soapaction,有些根据soapbody下的第一个子元素的名字来匹配 参数的问题,就是要按webservice服务器发布的wsdl自己组装soap消息,也就是前面代码里面BuildSoap要实现的东西。
alexmahoro007 2015-02-02
  • 打赏
  • 举报
回复
谢谢3L 1.请问第1和第7行的url有什么区别吗 2.对方的webservice需要传两个参数,用你说的这种方法怎么传
BrightFireOfCy 2015-01-30
  • 打赏
  • 举报
回复
不好意思,看错了,你是客户端。 基本方法如下所示:

HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create("http://your.webservice.com/yourendpoint.xxx");
            try
            {
                //根据用户的输入设置请求对象的标题字段
                //httpRequest.ContentType = "application/soap+xml; charset=utf-8";
                httpRequest.ContentType = "text/xml; charset=utf-8";
                httpRequest.Headers.Add("SOAPAction", "http://xxxx.xxxx.com.xxxx/xxxx/yyyy");
                httpRequest.Method = "POST";
                byte[] req_soap = BuildSoap();// 构建SOAP形式的request,BuildSoap这部分你要自己实现,方法多种多样
                httpRequest.ContentLength = req_soap.GetLength(0);
                Stream rs = httpRequest.GetRequestStream();
                rs.Write(req_soap, 0, (int)(httpRequest.ContentLength));
                rs.Close();
            }
            catch (Exception ex)
            {
            }
            HttpWebResponse httpResponse;
            bool err = false;
            try
            {
                httpResponse = (HttpWebResponse)httpRequest.GetResponse();
            }
            catch (WebException ex)
            {
            }

            StreamReader stream = new StreamReader(httpResponse.GetResponseStream());
            string x = stream.ReadToEnd();  
            // 至此你得到了返回的SOAP消息的字符串,当然你也可以用DOM的read方法直接读httpResponse.GetResponseStream()
BrightFireOfCy 2015-01-30
  • 打赏
  • 举报
回复
呵呵,原因是你调用的webservice返回的response里面的根节点带前缀,其实你获得的hubian这个变量也是null,只不过因为是boolean的所以设了false为默认值。不信你让webservice返回个hubian是true的值试试。 这个东西无解。呵呵 不过如果你要手动解析的话可以实现一个Ihttpmodule,或者ashx,request.inputstream可以拿到整个soap的消息
alexmahoro007 2015-01-30
  • 打赏
  • 举报
回复
如果解决不了 请问我怎么通过vs的webservice方式获取到返回的XML 再去解析这个xml,这种是最笨的方法了 求大神指教
内容概要:本文系统研究了构网型变流器的正负序阻抗解耦特性及其在弱电网环境下的稳定性表现,重点依托Matlab/Simulink仿真平台,构建了详细的阻抗数学模型,设计了解耦控制策略,并采用小信号扫频法进行频域辨识与稳定性验证。研究深入探讨了构网型变流器与传统跟网型逆变器在正负序阻抗特性上的本质差异,结合虚拟同步发电机(VSG)等先进控制技术,分析其在抑制宽频带振荡、削弱锁相环动态耦合等方面的优越性。文中不仅提供了完整的仿真模型与MATLAB代码实现,还整合了光伏、风电、储能、微电网等多类新能源系统的阻抗建模与稳定性分析资源,形成了一套面向新型电力系统稳定性的综合性技术资料体系,具有较强的科研复现与工程参考价值。; 适合人群:面向具备电力电子、电力系统自动化、新能源并网等专业背景的研究生、高校教师及工程技术人员,特别适用于从事阻抗建模、小干扰稳定性分析、宽频振荡机理研究以及撰写高水平学术论文的科研工作者。; 使用场景及目标:①掌握构网型变流器正负序阻抗建模与扫频辨识的仿真方法;②深入理解VSG等构网型控制在弱电网中提升稳定性的内在机理;③复现顶刊论文中的阻抗分析流程与稳定性判据应用;④利用提供的成熟模型与代码加速科研进程,支撑课题研究与学术成果产出。; 阅读建议:建议结合文中提供的Simulink模型与MATLAB代码,按照“理论建模—仿真搭建—扫频激励—频响提取—Nyquist判据分析”的完整流程进行实践操作,重点关注扫频信号的注入方式、频率范围设置及阻抗曲线的物理意义解读,并参考博士论文复现案例深化对复杂动态耦合问题的理解。

12,165

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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