2017-12-07 8 views
0

私のバックエンドコードはこのquestionとよく似ています。Vertx FileUploadユニットテスト

Router router = Router.router(vertx); 
router.route().handler(BodyHandler.create().setDeleteUploadedFilesOnEnd(true)); 

router.route("/api/*") 
        .produces(Constants.JSON_CONTENT_TYPE) 
        .failureHandler(rc -> { 
         // handling failure code 
       }); 

router.post("/api/upload").handler(uploadHandler::uploadHandler); 
vertx.createHttpServer(httpOptions) 
        .requestHandler(router::accept)        // The router::accept, method passes all routes defined in Router. 
        .listen(// do things); 
class UploadHandler() { 
    void uploadHandler(RoutingContext context) { 
     uploads.forEach(// do things); 
    } 
} 

私はメソッドをテストするために郵便配達員を使用してきました。それは完璧に働いています。 郵便配達

、私は体として、ヘッダーがありませんフォームデータをPOSTを選択し、ファイルをアップロードする代わりに、テキストのファイルを選択してください。

郵便番号にはコンテンツタイプが自動的に含まれていることをサーバーで確認しました。

私はこれが良いアプローチだと仮定しています。より良いアプローチがあれば教えてください。

私の問題はユニットテストです。 私はこのようなコードを使用しました。 https://github.com/vert-x/vertx-examples/blob/master/src/raw/java/upload/UploadClient.java

同様のことを行う他のスニペットがあります。しかし、サーバーはファイルが添付されていないと言っています。

ファイルをサーバーに送信するにはどうすればよいですか?あなたの質問のポイントで

答えて

0

リンクの最近のバージョンでVert.x

の古いバージョンに、あなたはVert.xのWebクライアントを使用する必要があります。完全なクライアント/サーバ・サンプルについて

String filename = "upload.txt"; 
FileSystem fs = vertx.fileSystem(); 

WebClient client = WebClient.create(vertx); 

fs.props(filename, ares -> { 
    FileProps props = ares.result(); 
    System.out.println("props is " + props); 
    long size = props.size(); 

    HttpRequest<Buffer> req = client.put(8080, "localhost", "/"); 
    req.putHeader("content-length", "" + size); 

    fs.open(filename, new OpenOptions(), ares2 -> { 
    req.sendStream(ares2.result(), ar -> { 
     if (ar.succeeded()) { 
     HttpResponse<Buffer> response = ar.result(); 
     System.out.println("Got HTTP response with status " + response.statusCode()); 
     } else { 
     ar.cause().printStackTrace(); 
     } 
    }); 
    }); 
}); 

、返事をありがとうVert.x examples repository

+0

こんにちはをチェックしてください。私はこのコードを試しました。サーバーはまだファイルを受信して​​いないと言っています。私は自分のサーバーコードに疑問を持ち始めました。しかし、Postmanはファイルを送信することができました。 – william