【问题标题】:DataOutputStream os = new DataOutputStream(con.getOutputStream()); throwing connection refused exceptionDataOutputStream os = new DataOutputStream(con.getOutputStream());抛出连接被拒绝异常
【发布时间】:2017-09-28 10:49:27
【问题描述】:

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

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)

请帮我解决这个问题。谢谢。

【问题讨论】:

  • 您的服务器无法访问
  • 你在说什么服务器?
  • my-json-server.typicode.com/
  • 服务器对我来说似乎工作正常。
  • 你是怎么知道的?

标签: java json post httpurlconnection


【解决方案1】:

据我所知,您需要将 BufferedReader 更改为 BufferedInputStream 并且“while”循环的构造方式错误,请点击我之前评论中的链接

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-11
    • 2020-10-17
    • 2014-10-13
    • 1970-01-01
    • 2016-06-24
    相关资源
    最近更新 更多