如何在服务器端将 HTTP POST 请求正文作为 Java 字符串获取?

Jos*_*hua 5 java post http

HttpExchange 对象的 getRequestBody 方法返回一个 InputStream。正确阅读“正文”还有很多工作要做。它是一个 Java 库 + 对象 + 方法,它向前迈进了一步并将主体(在服务器端)作为现成的 Java 字符串返回?

Jos*_*hua 6

InputStreamReader isr =  new InputStreamReader(t.getRequestBody(),"utf-8");
BufferedReader br = new BufferedReader(isr);

// From now on, the right way of moving from bytes to utf-8 characters:

int b;
StringBuilder buf = new StringBuilder(512);
while ((b = br.read()) != -1) {
    buf.append((char) b);
}

br.close();
isr.close();

// The resulting string is: buf.toString()
// and the number of BYTES (not utf-8 characters) from the body is: buf.length()
Run Code Online (Sandbox Code Playgroud)


Sun*_*nil 0

你尝试过这个吗?

 InputStreamReader isr =  new InputStreamReader(exchange.getRequestBody(),"utf-8");
 BufferedReader br = new BufferedReader(isr);
 String value = br.readLine();
Run Code Online (Sandbox Code Playgroud)