2010-09-20 2 views
0

I`m используя класс HttpURLConnection таким образом:Got 0 при использовании HttpURLConnection.getResponseCode()

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

Иногда I`m получение conResponseCode в .

Я попытался посмотреть в сети и не смог найти, что это значит?

любая идея, почему это происходит? и на что он указывает?

Thanks, ray.

+0

Это полный код? Делают соединение в любом виде блока try-catch? –

+0

Да, соединение происходит внутри блока try-catch. – rayman

ответ

0

Это недействительный HTTP-ответ, поэтому он ничего не значит.

Глядя на источник java.net.HttpURLConnection (что, как я полагаю, вы подразумеваете), он просто разбирает целочисленный код состояния из линии ответа. Что, казалось бы, подразумевает, что удаленный сервер возвращает ответ вдоль линий:

HTTP/1.0 0 XXX

(где XXX является какой-то причине).

Если вы сделаете запрос самостоятельно с помощью telnet (или аналогичной программы) или можете установить точки останова на источниках Java в своем отладчике, вы сможете увидеть, что отправляется с удаленного сервера в этом случае.

В любом случае это либо ошибка в библиотеках Java (возможно, но маловероятна), либо странный ответ с удаленного сервера. Получение необработанного содержимого ответа позволит вам провести различие между ними, а затем выполнить ping соответствующую сторону с сообщением об ошибке.

+0

Я не могу уловить проблему в отладчике, потому что это происходит случайным образом. любая идея, как еще я мог поймать проблему? спасибо – rayman

+0

Условная точка останова в отладчике позволит вам запускать это только тогда, когда доход будет равен нулю. Если у вас проблемы с воспроизведением * вообще *, это совсем другое дело. –

+0

Значит, я не могу увидеть детали ошибки через мой код? – rayman

Смежные вопросы