How do you send data in a Request body using HttpURLConnection?

后端 未结 2 1893
误落风尘
误落风尘 2020-12-30 03:24

I am using HttpURLConnection to make a POST request to a local service deployed locally and created using JAVA Spark. I want to send some data in reques

2条回答
  •  醉酒成梦
    2020-12-30 04:24

    You should call httpCon.connect(); only after you write your parameters in the body and not before. Your code should look like this:

    URL url = new URL("http://localhost:4567/");
    HttpURLConnection httpCon = (HttpURLConnection) url.openConnection();
    httpCon.setDoOutput(true);
    httpCon.setRequestMethod("POST");
    OutputStream os = httpCon.getOutputStream();
    OutputStreamWriter osw = new OutputStreamWriter(os, "UTF-8");    
    osw.write("Just Some Text");
    osw.flush();
    osw.close();
    os.close();  //don't forget to close the OutputStream
    httpCon.connect();
    
    //read the inputstream and print it
    String result;
    BufferedInputStream bis = new BufferedInputStream(httpCon.getInputStream());
    ByteArrayOutputStream buf = new ByteArrayOutputStream();
    int result2 = bis.read();
    while(result2 != -1) {
        buf.write((byte) result2);
        result2 = bis.read();
    }
    result = buf.toString();
    System.out.println(result);
    

提交回复
热议问题