Отправить байтовый массив на сервер от Android - PullRequest
0 голосов
/ 03 апреля 2020

Я создал Web Api Core и пытаюсь отправить изображение с Android. Как я знаю, это автоматически принимает JSON. Когда я пытаюсь отправить тип строки - это работает, но когда я пытаюсь отправить массив байтов - я получаю * error: "java .io.FileNotFoundException: https: // *********. сеть / Люди / CreatePerson "*. Код, который я использую в клиенте:

   Bitmap bitmap = ((BitmapDrawable) userAva.getDrawable()).getBitmap();
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
            byte[] imageInByte = baos.toByteArray();

        URL url = new URL ("https://***********.net/People/CreatePerson");
        HttpURLConnection con = (HttpURLConnection)url.openConnection();
        con.setRequestMethod("POST");
        con.setRequestProperty("Content-Type", "application/json; utf-8");
        con.setRequestProperty("Accept", "application/json");
        con.setDoOutput(true);
        //String jsonInputString = "{\"nickname\":\"Upendra\",\"photo\":" +imageInByte+"}";it is work
        String jsonInputString = "{\"nickname\":\"" +Base64.encodeToString(imageInByte,Base64.DEFAULT)+"\"}";

        try(OutputStream os = con.getOutputStream()) {
            byte[] input = jsonInputString.getBytes("utf-8");
            os.write(input, 0, input.length);
        }

        **try(BufferedReader br = new BufferedReader( //error here
                new InputStreamReader(con.getInputStream(), "utf-8")))** {
            StringBuilder response = new StringBuilder();
            String responseLine = null;
            while ((responseLine = br.readLine()) != null) {
                response.append(responseLine.trim());
            }
            System.out.println(response.toString());
        }

Но

...