2011-02-14 5 views
0

jettyのServletTesterを使用して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サーブレット受信ファイルをテストできますか?そうでない場合は、どのツールをお勧めしますか?桟橋のMultipartFilterTest.javaから

答えて

2

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); 
+0

*保存されました。じぶんの。あなたは素晴らしいです。 – Coderer

関連する問題