2010-09-20 48 views
0

我真的使用类HttpURLConnection的这种方式时:得到0使用HttpURLConnection.getResponseCode()

HttpURLConnection con=(HttpURLConnection) servlet.openConnection(); 
int conResponseCode = con.getResponseCode(); 

有时候,我真的越来越conResponseCode为。

我试图在网上看,并找不到它是什么意思?

任何想法为什么它occours?以及它声明的是什么?

谢谢, 射线。

+0

这是完整的代码?在任何类型的try-catch块中进行连接? – 2010-09-20 16:39:56

+0

是的,连接的建立在try-catch块内。 – rayman 2010-09-21 07:18:10

回答

0

这不是一个有效的HTTP响应,所以它本身并不意味着什么。

看看java.net.HttpURLConnection(这是我认为你的意思)的来源,它似乎只是从整个响应行解析整数状态码。这似乎意味着远程服务器返回沿着线的响应:

HTTP/1.0 0 XXX

(其中XXX是某种原因)。

如果您使用telnet(或类似程序)自己发出请求,或者可以在调试器中放置Java源的断点,则在此情况下,您将能够看到从远程服务器发回的内容。无论哪种方式,这都是Java库中的一个错误(可能,但不太可能)或来自远程服务器的奇怪响应。获取响应的原始内容将允许您区分这两者,然后使用错误报告来ping相关方。

+0

我不能在调试器中发现问题,因为它随机发生。任何想法我怎么能够捕捉概率?谢谢 – rayman 2010-09-20 16:48:07

+0

调试器中的条件断点只会让你在返回值为零时触发它。如果您有任何问题重现*,那完全是另一回事。 – 2010-09-20 17:19:17

+0

因此,我无法通过代码查看错误的详细信息? – rayman 2010-09-21 07:38:03