代码之家  ›  专栏  ›  技术社区  ›  user3668129

urlConnection.getOutputStream被卡住

  •  0
  • user3668129  · 技术社区  · 6 年前

    我正在尝试构建java应用程序,将数据发布到node.js服务器。

    在node.js中处理post的代码如下所示:

    app.post('/login.html', function (req, res) {
    
        log.info(req.body);
        userName = req.body.name;
        pass = req.body.pass;
        ...
    }
    

    java应用程序看起来:

    URL url;
    
    HttpURLConnection urlConnection = null;
    try {
        url = new URL("http://86.61.133.223/login.html:39083");
    
        urlConnection = (HttpURLConnection) url.openConnection();
    
    
        urlConnection.setReadTimeout(10000);
        urlConnection.setRequestProperty("Content-Type", "application/json");
    
        urlConnection.setConnectTimeout(15000);
        urlConnection.setRequestMethod("POST");
        urlConnection.setDoInput(true);
        urlConnection.setDoOutput(true);
    
        OutputStream os = urlConnection.getOutputStream();          
        Map<String, String> parameters = new HashMap<>();
        parameters.put("name", "root");
        parameters.put("pass", "123456");
    
        BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));          
        writer.write(getParamsString(parameters));
        writer.flush();
        writer.close();
        os.close();         
    
    } 
    

    不知为什么,我被困在:

    OutputStream os = urlConnection.getOutputStream();
    

    在node.js中,我没有注意到任何连接尝试。

    那么,为什么我会陷入困境,我该怎么解决呢?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Jens    6 年前

    如果 39083 应该是端口(我认为)你的网址是工作。端口属于主机名而不是URI:

    url = new URL("http://86.61.133.223:39083/login.html");