testing - jetty ServletTester 发布文件?

标签 testing servlets http-post

我可以使用jetty的ServletTester通过POST方式发送文件吗?如何?我尝试发送原始请求字符串:

 String reqString = "POST /avScan HTTP/1.1\r\n" +
                "Host: tester\r\n" +
                "\r\n" +
                "Content-Type: multipart/form-data; boundary=---------------------------121396480018623072891156223118\r\n" +
                "Content-Length: 63\r\n" +
                "-----------------------------121396480018623072891156223118\r\n" +
                "Content-Disposition: form-data; name=\"file\"; filename=\"test-file\"\r\n" +
                "Content-Type: application/octet-stream\r\n" +
                "Just some text file.\r\n" +
                "-----------------------------121396480018623072891156223118--\r\n";

ServletTester tester = new ServletTester();
tester.addServlet(FileReceiver.class, "/avScan");
tester.start();

HttpTester request = new HttpTester();
request.setContent(reqString);

String responseString = tester.getResponses(request.generate()); //Exception thrown
HttpTester response = new HttpTester();
response.parse(responseString);

但是,我在代码中标记的地方得到了 java.lang.IllegalStateException: State==HEADER

我可以用 ServletTester 测试 POST servlet 接收文件吗?如果没有,您会推荐什么工具?

最佳答案

来自 Jetty 的 MultipartFilterTest.java :

  HttpTester request = new HttpTester();
  String boundary="XyXyXy";
  request.setHeader("Content-Type","multipart/form-data; boundary="+boundary);
  String content = "--" + boundary + "\r\n"+
    "Content-Disposition: form-data; name=\"fileup\"; filename=\"test.upload\"\r\n"+
    "Content-Type: application/octet-stream\r\n\r\n"+
    "How now brown cow."+
    "\r\n--" + boundary + "-\r\n\r\n";

  request.setContent(content);

关于testing - jetty ServletTester 发布文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4996586/

相关文章:

Java httpPost 未正确发布数据(Apache 库)?

php - 如何防止 php "exec"参数中的恶意注入(inject)(webhook -> bash 脚本)

authentication - 是否可以从浏览器URL发出发布请求

Django URL 模式 : How to check if all url-names are distinct?

testing - 用小团队(和很少的时间)对大型项目进行手动与自动测试

java - 不同的行为取决于数据库中的异常

security - https页面访问非https资源

c - 当接收到 null-but-not-0 和 0-but-not-null 指针时,如何测试代码的行为?

testing - 如何在 e2e 测试中跳过 MFA?

java - 防止用户看到以前提交的信息