首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C# 抓取java webservice 抛出的错误 有关问题

2013-04-12 
C# 抓取java webservice 抛出的异常 问题最近在做一个项目用的 C# 调用java的webservice因为常常C#调的时

C# 抓取java webservice 抛出的异常 问题


最近在做一个项目  用的 C# 调用java的webservice  

因为常常C#调的时候返回500 我们这边的人就想知道到底java那边到底是抛出啥子异常出来  在哪抛的。

目前: 在java webservice报500 或者505 的时候 知道到底具体异常是什么

下面是我调用java webservice的方法  请各位大牛·帮忙解答· 


    Encoding encoding = Encoding.GetEncoding("utf-8");
                byte[] data = encoding.GetBytes(xml);
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                //发送数据
                request.Method = "POST";
                request.ContentType = "application/soap+xml; charset=UTF-8";
                request.ContentLength = data.Length;
                Stream requestStream = request.GetRequestStream();
                requestStream.Write(data, 0, data.Length);
                requestStream.Close();
                //接收返回值
                HttpWebResponse res = (HttpWebResponse)request.GetResponse();
                StreamReader sReader = new StreamReader(res.GetResponseStream(), System.Text.Encoding.UTF8);
                string returnXml = sReader.ReadToEnd();
                sReader.Close();
                res.Close();
                info.RESULT_TYPE = true;
                info.RESULT_DATA = returnXml;
                return info;
            }
            catch (HttpListenerException ex)
            {
                info.RESULT_DATA = ex.Message;
                return info;
            }
            catch (WebException ex)
            {
                info.RESULT_DATA = ex.Message;


                return info;
            }



帮忙改改  。能不能再报500错或者505的时候把具体异常给抓出来 c# java
[解决办法]
引用:
引用:最近在做一个项目  用的 C# 调用java的webservice  

因为常常C#调的时候返回500 我们这边的人就想知道到底java那边到底是抛出啥子异常出来  在哪抛的。

目前: 在java webservice报500 或者505 的时候 知道到底具体异常是什么

下面是我调用java webservice的方法……

向调用服务这些,记录日志是很重要的,有时候找一个问题找死人,就是因为没记录日志,有时候查看日志问题就迎刃而解
[解决办法]
HttpWebResponse res = (HttpWebResponse)webrequest.GetResponse();
            if (res.StatusCode.ToString() == "500")
            {
                Console.WriteLine("等效于 HTTP 状态 500。System.Net.HttpStatusCode.InternalServerError 指示服务器上发生了一般错误。");
            }

使用这个HttpStatusCode对象可判断出返回的状态为500,可做些处理。
但这是治标不治本的方法,还要是看看java那边出了什么异常。
[解决办法]
引用:
引用:要在java那里想办法,当错误的时候返回错误的具体信息。如果java那里的程序没有异常处理,只是web server返回一个500的状态码,是没有办法知道具体错误的。

先发生异常,然后再抛出,然后再出现500页面,这个异常信息抛哪去了··

没有了,给web server吃掉了。
[解决办法]
引用:
引用:引用:引用:要在java那里想办法,当错误的时候返回错误的具体信息。如果java那里的程序没有异常处理,只是web server返回一个500的状态码,是没有办法知道具体错误的。

先发生异常,然后再抛出,然后再出现500页面,这个异常信息抛哪去了··
没有了,给w……


反正客户端和服务器端通过http协议通讯,它所能知道的一切信息取决于服务器发给了它什么信息,你用一个抓包工具就能看到。
[解决办法]
所谓InnerException也是指,服务器返回了这样的异常信息,客户端的代理把它包装成一个InnerException对象放在Exception中给你。显然客户端和服务器端并不共享内存和机器状态,也不共享堆栈,或者可以连为一体,客户端只能得到服务器主动提供(经网络传输)的数据。

热点排行