URL连接HTTP POST连接被拒绝

时间:2013-01-20 23:32:25

标签: java http url connection

我正在使用Java 7开发Java桌面应用程序。对于我的应用程序,我想将POST数据发送到服务器(使用HTTP)。服务器在localhost上的本地计算机上运行。 但是,如果我尝试连接到服务器,则返回连接重置(SocketTimeoutException)。我无法连接,我也尝试连接到http://www.google.de这样的网页,但它也失败了。 var主体包含正确形式的POST数据。 (我也尝试连接已禁用的防火墙) 我的代码:

body=body.substring(0,body.length()-2);
HttpURLConnection connection = null;
try {
    if (revision){ //Connect to the revision server
        this.urlRevision = new URL(this.settingsRevision.getAddress());
        connection = (HttpURLConnection) urlRevision.openConnection();
        connection.setRequestMethod("POST");
        connection.setConnectTimeout(10000);
        connection.setReadTimeout(10000);
        connection.setDoInput(true);
        connection.setDoOutput(true);
        connection.setUseCaches(true);
        connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
        connection.setRequestProperty("Content-Length", String.valueOf(body.length()));
        connection.connect();
        OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());
        writer.write(body);
        writer.flush();

        this.returnedData = new BufferedReader(new InputStreamReader(connection.getInputStream()));
        for(String line; (line = returnedData.readLine()) != null;){
            System.out.println(line);
        }
        writer.close();
        this.returnedData.close();
    }
} catch (Exception e) {
        this.exception=e;
}

2 个答案:

答案 0 :(得分:0)

你应该尝试关闭这样的连接:

} finally {
    if(connection != null) {
      connection.disconnect(); 
    }
}

答案 1 :(得分:0)

我已将其添加到评论中:

System.setProperty("java.net.preferIPv4Stack" , "true");

原因:Java在我的计算机上使用IPv6功能,但IPv4用于互联网连接(在我的计算机上和我的提供商(T-Online))。