在POST请求中发送图像时在服务器中获取空的请求正文

时间:2020-06-21 11:00:47

标签: android kotlin

我正在从服务器上的android应用发送图像,由于某些原因,我无法在服务器上弄清楚我正在接收空的请求正文,用尽了想法,任何建议都值得赞赏,非常感谢。使用以下代码发送图像:

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()

编辑1: 不能让它像评论一样工作: enter image description here

服务器端:

 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();
            }

调试器信息: 我看到图像在内容里面,但是我在服务器上找不到它 enter image description here

rc关于调试器的服务器端信息: enter image description here

0 个答案:

没有答案
相关问题