gpt4 book ai didi

java - 未知主机异常

转载 作者:行者123 更新时间:2023-12-02 00:04:35 25 4
gpt4 key购买 nike

为什么会抛出UnknownHostException?

    parameters = "user=akirus&pass=1234&version=1";
String result = excutePost("http://russianimperial.ru/minecraft/loginServer.php", parameters);

public static String excutePost(String targetURL, String urlParameters) {
HttpURLConnection connection = null;
try {
URL url = new URL(targetURL);
connection = (HttpURLConnection)url.openConnection();

connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
connection.setRequestProperty("Content-Length", Integer.toString(urlParameters.getBytes().length));
connection.setRequestProperty("Content-Language", "en-US");

connection.setUseCaches(false);
connection.setDoInput(true);
connection.setDoOutput(true);

DataOutputStream wr = new DataOutputStream(connection.getOutputStream());
wr.writeBytes(urlParameters);
wr.flush();
wr.close();

InputStream is = connection.getInputStream();
BufferedReader rd = new BufferedReader(new InputStreamReader(is));

StringBuffer response = new StringBuffer();
String line;
while ((line = rd.readLine()) != null) {
response.append(line);
response.append('\r');
}
rd.close();

String str1 = response.toString();
return str1;
}catch (Exception e) {
e.printStackTrace();
return null;
}finally {
if (connection != null)
connection.disconnect();
}
}

网址http://russianimperial.ru/minecraft/loginServer.php已验证。早些时候它工作得很好。 UnknownHostException扔在这个地方InputStream is = connection.getInputStream(); 。在javadoc中写道connection.getInputStream()当协议(protocol)不支持输入时可以抛出此异常,但我认为http支持输入。

最佳答案

事实上,这段代码会产生 UnknownHostException。但看一下完整的堆栈跟踪:

java.net.UnknownHostException: updaters
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:195)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:529)
at java.net.Socket.connect(Socket.java:478)
at sun.net.NetworkClient.doConnect(NetworkClient.java:163)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:388)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:523)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:227)
at sun.net.www.http.HttpClient.New(HttpClient.java:300)
at sun.net.www.http.HttpClient.New(HttpClient.java:317)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:970)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:911)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:836)
at sun.net.www.protocol.http.HttpURLConnection.followRedirect(HttpURLConnection.java:2113)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1367)
at Host.excutePost(Host.java:43)
at Host.main(Host.java:14)

当 URL 连接尝试重定向时,您会遇到此异常,并且重定向会转到一些不清楚的“更新程序”。所以它不是“Russianimperials.ru”,而是它所做的重定向。为什么?这取决于页面,-您也可能在传递参数的方式上做错了什么。

关于java - 未知主机异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14136416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com