Пристань ServletTester POST файл? - PullRequest
       25

Пристань ServletTester POST файл?

0 голосов
/ 14 февраля 2011

Могу ли я использовать 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 там, где я отметил его в коде.

Могу ли я проверить получение файлов сервлета POST с ServletTester?Если нет, какой инструмент вы бы порекомендовали?

1 Ответ

3 голосов
/ 16 марта 2011

Из Jetty's 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);
...