Java Spark POST服务处理程序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 request body when I make the POST call using the HttpURLConnection but every time the request body in JAVA Spark is null. Below is the code I am using for thispost("/", (req, res) -> { System.out.println("Request Body: " + req.body()); return "Hello!!!!";}); HTTPClass进行POST调用public class HTTPClassExample{ public static void main(String[] args) { try{ URL url = new URL("http://localhost:4567/"); HttpURLConnection httpCon = (HttpURLConnection) url.openConnection(); httpCon.setDoOutput(true); httpCon.setRequestMethod("POST"); httpCon.connect(); OutputStream os = httpCon.getOutputStream(); OutputStreamWriter osw = new OutputStreamWriter(os, "UTF-8"); osw.write("Just Some Text"); System.out.println(httpCon.getResponseCode()); System.out.println(httpCon.getResponseMessage()); osw.flush(); osw.close(); } catch(Exception ex){ ex.printStackTrace(); } }}推荐答案仅在将参数写入主体后才可以调用httpCon.connect();,而不是在此之前.您的代码应如下所示: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 OutputStreamhttpCon.connect();//read the inputstream and print itString 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); 这篇关于如何使用HttpURLConnection在请求正文中发送数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!
05-19 12:10