org.json.JSONException: значение Строка ввода была в неправильном формате. типа java.lang.String не может быть преобразован в JSONObject - PullRequest
0 голосов
/ 31 октября 2019

Я использую Retrofit2 Multipart, и это мой код для Android:

   private void uploadToServer(String filePath) {
    try {
        Retrofit retrofit = NetworkClient.getRetrofitClient(this);
        PessoaService getAtualizaPessoaPasso2 = retrofit.create(PessoaService.class);
        //Create a file object using file path
        File file = new File(filePath);
        // Create a request body with file and image media type
        RequestBody fileReqBody = RequestBody.create(MediaType.parse("image/*"), file);
        // Create MultipartBody.Part using file request-body,file name and part name
        MultipartBody.Part part = MultipartBody.Part.createFormData("upload", file.getName(), fileReqBody);

        /*Transformamos getEmpresa e getEmpresaEmpregadora em String para comparação*/
        String empresaIdString = String.valueOf(pessoa.getEmpresa().getEmpresaId());
        String empresaIdEmpregadoraString = String.valueOf(pessoa.getEmpresaEmpregadora().getEmpresaId());

        /*Para este caso, comparamos se o id da empresaIdEmpregadora é igual o da empresaId.
         * Caso seja, está errado e devemos pegar o id da TAG EMPRESA, pois são coisas diferentes.
         * A empresaEmpregadora são empresas registradas no banco, quando a outra é a empresa
         * própria (PJ) do usuário ZappCard
         * */

        Call call;
        if (empresaIdEmpregadoraString == empresaIdString) {
            // Verificamos se a empresa é igual a empresaEmpregadora, se sim enviamos a TAG da empresaEmpregadora.
            // Empresa e EmpresaEmpregadora são empresas diferentes.
            call = getAtualizaPessoaPasso2.getAtualizaPessoaPasso2(pessoa.getIdentificador(), pessoa.getCelular(), empresaTag, part, pessoa.getProfissao());
        } else if (!empresaIdEmpregadoraString.equals("")) {
            // Enviamos a empresa empregadora do usuário caso exista uma
            call = getAtualizaPessoaPasso2.getAtualizaPessoaPasso2(pessoa.getIdentificador(), pessoa.getCelular(), String.valueOf(pessoa.getEmpresaEmpregadora().getEmpresaId()), part, pessoa.getProfissao());
        } else {
            // Caso não exista nenhum empresaId, enviamos -10, o que significa que o usuário não tem uma empresaEmpregadora
            call = getAtualizaPessoaPasso2.getAtualizaPessoaPasso2(pessoa.getIdentificador(), pessoa.getCelular(), "-10", part, pessoa.getProfissao());
        }
        call.enqueue(new Callback<Boolean>() {
            @Override
            public void onResponse(Call<Boolean> call, Response<Boolean> response) {
                if (response.equals(true)) {
                    Toast.makeText(DadosPessoaisActivity.this, "Sucesso!", Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(DadosPessoaisActivity.this, "Erro: " + response.message(), Toast.LENGTH_SHORT).show();
                }
            }

            @Override
            public void onFailure(Call<Boolean> call, Throwable t) {
                Toast.makeText(DadosPessoaisActivity.this, "Erro: " + t, Toast.LENGTH_SHORT).show();
            }
        });
    } catch (Exception er) {
        Log.d("ErroChamadaAPI", "uploadToServer: " + er);
        Toast.makeText(this, "Um erro inesperado ocorreu! Tente novamente mais tarde.   ", Toast.LENGTH_LONG).show();
    }
}

Этот ответ:

Ответ {protocol = http / 1.1, code = 400, message= Плохой запрос, url = myapiurlhere}

У меня есть это JSONException:

org.json.JSONException: Значение Строка ввода была в неправильном формате. типа java.lang.String невозможно преобразовать в JSONObject

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...