This commit is contained in:
Looly 2023-04-20 21:27:34 +08:00
parent 4fa9fb8606
commit d307a95f37
3 changed files with 78 additions and 46 deletions

View File

@ -0,0 +1,28 @@
/*
* Copyright (c) 2023 looly(loolly@aliyun.com)
* Hutool is licensed under Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
* http://license.coscl.org.cn/MulanPSL2
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PSL v2 for more details.
*/
package cn.hutool.http;
import org.junit.Ignore;
import org.junit.Test;
public class Issue3074Test {
@Test
@Ignore
public void bodyTest() {
HttpUtil.createPost("http://localhost:8888/body")
.contentType(ContentType.JSON.getValue())
.body("aaa")
.execute();
}
}

View File

@ -10,8 +10,8 @@
* See the Mulan PSL v2 for more details. * See the Mulan PSL v2 for more details.
*/ */
import cn.hutool.http.HttpGlobalConfig; package cn.hutool.http;
import cn.hutool.http.HttpUtil;
import org.junit.Ignore; import org.junit.Ignore;
import org.junit.Test; import org.junit.Test;

View File

@ -11,50 +11,54 @@ public class SimpleServerTest {
public static void main(String[] args) { public static void main(String[] args) {
HttpUtil.createServer(8888) HttpUtil.createServer(8888)
.addFilter(((req, res, chain) -> { .addFilter(((req, res, chain) -> {
Console.log("Filter: " + req.getPath()); Console.log("Filter: " + req.getPath());
chain.doFilter(req.getHttpExchange()); chain.doFilter(req.getHttpExchange());
})) }))
// 设置默认根目录classpath/html // 设置默认根目录classpath/html
.setRoot(FileUtil.file("html")) .setRoot(FileUtil.file("html"))
// get数据测试返回请求的PATH // get数据测试返回请求的PATH
.addAction("/get", (request, response) -> .addAction("/get", (request, response) ->
response.write(request.getURI().toString(), ContentType.TEXT_PLAIN.toString()) response.write(request.getURI().toString(), ContentType.TEXT_PLAIN.toString())
) )
// 返回JSON数据测试 // 返回JSON数据测试
.addAction("/restTest", (request, response) -> { .addAction("/restTest", (request, response) -> {
String res = JSONUtil.createObj() String res = JSONUtil.createObj()
.set("id", 1) .set("id", 1)
.set("method", request.getMethod()) .set("method", request.getMethod())
.set("request", request.getBody()) .set("request", request.getBody())
.toStringPretty(); .toStringPretty();
response.write(res, ContentType.JSON.toString()); response.write(res, ContentType.JSON.toString());
}) })
// 获取表单数据测试 // 获取表单数据测试
// http://localhost:8888/formTest?a=1&a=2&b=3 // http://localhost:8888/formTest?a=1&a=2&b=3
.addAction("/formTest", (request, response) -> .addAction("/formTest", (request, response) ->
response.write(request.getParams().toString(), ContentType.TEXT_PLAIN.toString()) response.write(request.getParams().toString(), ContentType.TEXT_PLAIN.toString())
) )
// 文件上传测试 // 文件上传测试
// http://localhost:8888/formForUpload.html // http://localhost:8888/formForUpload.html
.addAction("/file", (request, response) -> { .addAction("/file", (request, response) -> {
Console.log("Upload file..."); Console.log("Upload file...");
Console.log(request.getParams()); Console.log(request.getParams());
final UploadFile[] files = request.getMultipart().getFiles("file"); final UploadFile[] files = request.getMultipart().getFiles("file");
// 传入目录默认读取HTTP头中的文件名然后创建文件 // 传入目录默认读取HTTP头中的文件名然后创建文件
for (UploadFile file : files) { for (UploadFile file : files) {
file.write("d:/test/"); file.write("d:/test/");
Console.log("Write file: d:/test/" + file.getFileName()); Console.log("Write file: d:/test/" + file.getFileName());
} }
response.write(request.getMultipart().getParamMap().toString(), ContentType.TEXT_PLAIN.toString()); response.write(request.getMultipart().getParamMap().toString(), ContentType.TEXT_PLAIN.toString());
} }
) )
// 测试输出响应内容是否能正常返回Content-Length头信息 // 测试输出响应内容是否能正常返回Content-Length头信息
.addAction("test/zeroStr", (req, res)-> { .addAction("test/zeroStr", (req, res) -> {
res.write("0"); res.write("0");
Console.log("Write 0 OK"); Console.log("Write 0 OK");
}) })
.start(); .addAction("/body", (req, resp) -> {
Console.log(req.getBody());
resp.write(req.getBody());
})
.start();
} }
} }