I'm sending image from android app on server an by some reasons I can't figure out on server I'm receiving empty request body. Sending image with a following code:
val serverUrl = "http://192.168.56.1:8080/recognize/get_text_from_image"
val client = OkHttpClient.Builder()
.build()
val stream = ByteArrayOutputStream()
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream)
val byteArray = stream.toByteArray()
val encodedImage: String = encodeToString(byteArray, DEFAULT)
val requestBody: RequestBody = RequestBody.create(MediaType.parse("image/*jpg"), encodedImage)
val request: Request = Request.Builder()
.url(serverUrl)
.post(requestBody)
.build()
edit 1:
Cant make it work like in comment:
Server side:
Router baseRouter = Router.router(vertx);
Router apiRouter = Router.router(vertx);
baseRouter.route("/").handler(routingContext -> {
HttpServerResponse response = routingContext.response();
response.putHeader("content-type", "text/plain").end("Heeloo Vert.x!");
});
//recogizeText();
// apiRouter.get("/get_text_from_image").handler(this::getText);
baseRouter.mountSubRouter("/recognize", apiRouter);
vertx.createHttpServer()
.requestHandler(baseRouter::accept)
.listen(8080, result -> {
if (result.succeeded()) {
System.out.println("completed");
startFuture.complete();
} else {
startFuture.fail(result.cause());
System.out.println(result.cause().getLocalizedMessage());
}
});
apiRouter.route(HttpMethod.POST, "/get_text_from_image").handler(rc -> {
System.out.println("request came...");
try {
JsonObject json = rc.getBodyAsJson();
System.out.println(rc.data().size());
System.out.println(json);
System.out.println(rc.getBody());
}catch (Exception e) {
System.out.println("Error while getting BodyAsJson...");
e.printStackTrace();
}
Debugger info:
as I see image is inside content, but I cant find it on server