2016-04-04 13 views
5

Tôi đã sử dụng đoạn mã sau để kết nối -java.net.SocketTimeoutException (ANDROID)

URL url = new URL("https://results.bput.ac.in/"); 

HttpURLConnection urlc = (HttpURLConnection) url.openConnection(); 
urlc.setConnectTimeout(1000 * 20); 

urlc.connect(); 

Nó trở một SocketTimeoutException.

Exception

Ngoại lệ chính xác tôi đang nhận được là

java.net.SocketTimeoutException: failed to connect to results.bput.ac.in/14.139.212.166 (port 443) after 90000ms 

và đôi khi điều này -

java.net.SocketTimeoutException: failed to connect to results.bput.ac.in/14.139.212.166 (port 80) after 90000ms 
  • thử với loại bỏ các urlc.setConnectTimeout(1000 * 20); và vẫn có ngoại lệ.
  • được kiểm tra với http thay vì httpsURL url = new URL("http://results.bput.ac.in/"); nhưng không có kết quả.
  • cheked với URL url = new URL("https://www.facebook.com/"); và nhận được phản hồi thành công.
  • Được kiểm tra với việc thay đổi khoảng thời gian chờ nhưng ngoại trừ cùng một ngoại lệ.

Sự cố xảy ra với url cụ thể này - http://results.bput.ac.in/.

Thông tin

Liên kết này tôi đã trao http://results.bput.ac.in/ là hoàn toàn làm việc trên bất kỳ trình duyệt web mà không cần bất kỳ tụt hậu.

Tôi nhận được thông tin rằng một số người không thể mở trang web này, sự chậm trễ của nó nhưng tôi có thể mở nó mà không bị trễ.

My Research

Tôi đã cố gắng this SO question, this SO question, this github solutionjava code geeks solution nhưng đã không có kết quả.

Cập nhật

Tôi đã thử nghiệm này với wifi của tôi và dữ liệu di động bằng cách nghĩ rằng router của tôi có thể có một số vấn đề với các cổng. nhưng tôi cũng có ngoại lệ với dữ liệu di động.

Có ai có bất kỳ giải pháp nào cho vấn đề này không.

+0

là liên kết đó có hoạt động không? –

+0

tôi đã chỉnh sửa câu hỏi của mình. @PankajNimgade liên kết hoạt động. –

+1

tôi đã thử liên kết đó trong trình duyệt, nhưng nó đã hết thời gian, bạn có chắc chắn rằng –

Trả lời

2

Nếu số hostname giải quyết thành nhiều địa chỉ IP, khách hàng này sẽ thử mỗi địa chỉ RFC 3484. Nếu kết nối với từng địa chỉ trong số này không thành công, nhiều lần hết thời gian chờ sẽ trôi qua trước khi nỗ lực kết nối đưa ra một ngoại lệ. Tên máy chủ hỗ trợ cả hai số IPv6IPv4 luôn có ít nhất 2 địa chỉ IP.- Doc

Bạn đã sử dụng setConnectTimeout() và thêm thời gian tối đa cũng vì vậy không có nghi ngờ về điều đó. Lý do chính của SocketTimeoutException là nếu hết thời gian chờ trước khi kết nối được thiết lập.

Sau đó, lý do chính và chắc chắn là Không thể thiết lập kết nối với máy chủ của bạn.

+0

Tôi sẽ làm gì sau đó? bất kì giải pháp nào ? –

+0

Đảm bảo rằng bạn có thể mở 'URL' đó và thiết lập kết nối phù hợp. máy chủ của bạn không phản hồi nhưng 'https: // www.facebook.com' sẽ làm, để nó hoạt động tốt. Điều này có nghĩa là bạn không có gì để làm với lỗi này ở phía máy khách cho đến khi bạn khắc phục vấn đề thời gian chờ kết nối. –

+0

tôi cũng đã cố gắng không đưa ra bất kỳ khoảng thời gian chờ và thats cho lỗi quá. –

Các vấn đề liên quan