繁体   English   中英

DataOutputStream os = new DataOutputStream(con.getOutputStream()); 抛出连接拒绝异常

[英]DataOutputStream os = new DataOutputStream(con.getOutputStream()); throwing connection refused exception

我正在尝试将一些数据发布到服务器中。 我正在使用在线提供的示例网址。 我无法继续前进,因为线路,

DataOutputStream os = new DataOutputStream(con.getOutputStream()); , 正在抛出连接拒绝异常。 这是代码...

public static void main(String[] args) throws Exception {
    try {
        URL url = new URL("https://my-json-server.typicode.com/typicode/demo/posts");
        HttpURLConnection con = (HttpURLConnection) url.openConnection();
        con.setDoOutput(true);
        con.setRequestMethod("POST");
        con.setRequestProperty("Content-Type", "application/json");

        JSONObject jsonObj = new JSONObject();
        jsonObj.put("id", 5);

        DataOutputStream os = new DataOutputStream(con.getOutputStream());
        os.writeBytes(jsonObj.toString());
        os.flush();

        BufferedReader br = new BufferedReader(new InputStreamReader((con.getInputStream())));
        int responseCode = con.getResponseCode();
        String output;
        StringBuffer sb = new StringBuffer();
        System.out.println("Output from Server .... \n");
        while ((output = br.readLine()) != null) {
            sb.append(output);
            break;
        } 

        System.out.println("Response Code: "+responseCode);
        System.out.println("URL: "+url);
        System.out.println("Parameters: "+jsonObj.toString());
        System.out.println("Output: "+output.toString());

        con.disconnect();
    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

下面是异常..

java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at sun.security.ssl.SSLSocketImpl.connect(Unknown Source)
at sun.security.ssl.BaseSSLSocketImpl.connect(Unknown Source)
at sun.net.NetworkClient.doConnect(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.protocol.https.HttpsClient.<init>(Unknown Source)
at sun.net.www.protocol.https.HttpsClient.New(Unknown Source)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(Unknown Source)
at insertData.main(insertData.java:37)

请帮我解决一下这个。 谢谢。

您需要将 BufferedReader 更改为 BufferedInputStream 并且您所拥有的“while”循环以错误的方式构建,据我所知,请按照我之前评论中的链接进行操作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM