Java 如何有目的地生成ConnectException?
我正在使用javaJava 如何有目的地生成ConnectException?,java,Java,我正在使用javaHttpURLConnection类连接到一个url,我想生成ConnectException来监视和记录一些数据。我只是尝试连接随机网站,但我无法生成ConnectionException,即使当我试图访问不存在但正在捕获畸形异常的url时也是如此 从ConnectException的Java文档中 表示尝试将套接字连接到时出错 远程地址和端口。通常,连接被拒绝 远程(例如,没有进程正在侦听远程地址/端口) 这意味着需要拒绝远程服务器的连接,但我不知道这意味着什么以及如何从
HttpURLConnection
类连接到一个url,我想生成ConnectException来监视和记录一些数据。我只是尝试连接随机网站,但我无法生成ConnectionException
,即使当我试图访问不存在但正在捕获畸形异常的url时也是如此
从ConnectException
的Java文档中
表示尝试将套接字连接到时出错
远程地址和端口。通常,连接被拒绝
远程(例如,没有进程正在侦听远程地址/端口)
这意味着需要拒绝远程服务器的连接,但我不知道这意味着什么以及如何从我的java代码生成连接?当您尝试连接到不存在的URL时,可能会发生两种错误:
域本身的DNS条目不存在。想想www.argh-nonexistant.com和www.google.com
域存在,Web服务器正在侦听,但路径不存在。()
在这两种情况下,都不会抛出ConnectException
,因为此异常需要
域的DNS条目有效且名称解析成功,并且
给定端口上没有运行websever
ConnectException
和套接字基本上位于ISO/OSI堆栈(即TCP/IP)的第3层或第4层,而格式错误的URL是应用层问题
您的解决方案:查找具有有效DNS条目但没有侦听Web服务器的服务器<代码>::1
应该是一个安全的赌注,除非您自己在端口80上托管Web服务器。下面是一个简单的工作示例:
package Foo;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
public class TestClass {
public static void main(String[] args) throws IOException {
URL url = new URL("http://localhost");
HttpURLConnection c = (HttpURLConnection)url.openConnection();
c.connect();
}
}
尝试连接到不存在的URL时,可能会发生两种错误:
ConnectException
,因为此异常需要
ConnectException
和套接字基本上位于ISO/OSI堆栈(即TCP/IP)的第3层或第4层,而格式错误的URL是应用层问题
您的解决方案:查找具有有效DNS条目但没有侦听Web服务器的服务器<代码>::1应该是一个安全的赌注,除非您自己在端口80上托管Web服务器。下面是一个简单的工作示例:
package Foo;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
public class TestClass {
public static void main(String[] args) throws IOException {
URL url = new URL("http://localhost");
HttpURLConnection c = (HttpURLConnection)url.openConnection();
c.connect();
}
}
你在建立连接的过程中是否尝试过关闭无线或拔下网线?你在建立连接的过程中是否尝试过关闭无线或拔下网线?顺便问一下,在连接过程中关闭Wi-Fi也会产生相同的结果。不确定原因。因为操作系统打开的套接字终止;连接已断开。顺便说一下,在连接过程中关闭Wi-Fi也会产生相同的结果。不确定原因。因为操作系统打开的套接字终止;连接断了。