在JAVA中,使用sun HttpServer实现一个web server的时候,使用了下面的hander类来处理请求:
static class MyHandler implements HttpHandler {
@Override
public void handle(HttpExchange httpExchange) throws IOException {
String response = "test"; // 返回固定内容
httpExchange.sendResponseHeaders(200, response.length());
OutputStream os = httpExchange.getResponseBody();
os.write(response.getBytes());
os.close();
}
}
如果要在response里返回带中文的内容,例如:
String response = "中文";
那么你就会发现访问这个web server返回的是null,这说明handler实现有问题。那么代码应该怎么改?
文章来源:https://www.codelast.com/
如下:
文章来源:https://www.codelast.com/
如下:
static class MyHandler implements HttpHandler {
@Override
public void handle(HttpExchange httpExchange) throws IOException {
String response = "中文";
byte[] bytes = response.getBytes(StandardCharsets.UTF_8); // 转换为字节数组,指定编码为UTF-8
httpExchange.sendResponseHeaders(200, bytes.length);
OutputStream os = httpExchange.getResponseBody();
os.write(bytes);
os.close();
}
}
此时你会发现,向server发请求返回的不再是null而是正确的内容了。
文章来源:https://www.codelast.com/
➤➤ 版权声明 ➤➤
转载需注明出处:codelast.com
感谢关注我的微信公众号(微信扫一扫):
以及我的微信视频号: