C#调用JAVA的WEBSERVICE,现在JAVA那边返回自定义对象。
我C#这边接收到的返回值是null,但是抓包发现已经调用成功,并且返回SOAP消息。
这几天在网上找了很多资料,总结了一下,都说有两种原因:
一:JAVA返回的XML不标准,C#这边反序列化的时候出问题
二:JAVA的SERVICE类跟返回的自定义对象的类放在两个不同的包,而C#这边生成的类两者是放在同一个命名空间的,所以C#这边会出问题。
现在就有个问题,JAVA那边是不可能改的,有没有其他方法可以获取到返回的消息呢?
有一种思路:利用服务代理:
代码:
public string GetRequest(string url, ref CookieContainer cc) { string content = string.Empty; HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(new Uri(url)); webRequest.CookieContainer = cc; webRequest.Method = "Get"; webRequest.ContentType = "application/x-www-form-urlencoded"; using (HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse()) { using (StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8)) { content = sr.ReadToEnd(); } } return content; }
url就填写你调用java的地址 这样你在你本地的代码里面获取后 修改成符合格式要求的json或者xml 在本地直接用ajax调用
相当于我请求我自己的后台 而我的后台用的HttpWebRequest取请求别人的地址,这样我就可以得到相应 的内容 你说他格式不对 获取后修改 说了那么多 应该明白了吧!以前也做过应该这样的 第3方返回的格式不对 无法修改 。