问题在经过改造的不同设备中上载图像/文件,出现错误代码:500或内部服务器错误

时间:2018-09-03 08:57:56

标签: android retrofit retrofit2

我想使用改造2上传图像/文件,这是我的代码

这是我的界面

@POST("Upload/UploadFile") Call<ResponseUpload> postImage (@Body RequestBody files);

这是我发布到Web服务的方法

    File fotoKTP = new File(Uri.parse(pathKTP).getPath());
    File fotoSelfie = new File(Uri.parse(pathSelfie).getPath());

    MultipartBody.Builder builder = new MultipartBody.Builder();
    builder.setType(MultipartBody.FORM);
    builder.addFormDataPart("phone_number", regisUser.getNo_hp());
    builder.addFormDataPart("foto_id",fotoKTP.getName(),RequestBody.create(MediaType.parse("image/jpeg"), fotoKTP));
    builder.addFormDataPart("foto_selfie",fotoSelfie.getName(),RequestBody.create(MediaType.parse("image/jpeg"), fotoSelfie));

    MultipartBody requestBody = builder.build();

    Call<ResponseUpload> call = client.postImage(requestBody);
    call.enqueue(new Callback<ResponseUpload>() {
        @Override
        public void onResponse(Call<ResponseUpload> call, Response<ResponseUpload> response) {
            ResponseUpload responseUpload = response.body();
            if (responseUpload != null){
                if (responseUpload.getSuccess().equals("1")) {
                    flag = true;
                    regisUser.setFoto_id(responseUpload.getFoto_id());
                    regisUser.setFoto_selfie(responseUpload.getFoto_selfie());
                    Toast.makeText(AutentikasiActivity.this, "Url Foto : " + responseUpload.getFoto_id() + "dan" + responseUpload.getFoto_selfie(), Toast.LENGTH_SHORT).show();

                } else if (responseUpload.getSuccess().equals("-9")) {
                    flag = false;
                    Toast.makeText(AutentikasiActivity.this, "Balikan Dari Server :" + responseUpload.getError_msg(), Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(AutentikasiActivity.this, "Response Null", Toast.LENGTH_SHORT).show();
                }
            }
        }

        @Override
        public void onFailure(Call<ResponseUpload> call, Throwable t) {
            Toast.makeText(AutentikasiActivity.this, "Check Your Connection", Toast.LENGTH_SHORT).show();
        }
    });

我的问题是为什么在使用不同的设备时出现内部服务器错误/代码:500。

我用我的设备Lenovo K6测试了Android 7 API 23,它工作正常,我得到了代码:200,这表示成功,但是当我用我的朋友设备OnePlus 5 T(即Android 8.1 API 27)测试时,出现了错误代码:500“内部服务器错误”,我已经使用第三台设备三星Note FE Android 8.1 API 27进行过测试,它得到了一些错误代码。有谁知道该问题的解决方法和解决方案?谢谢。

1 个答案:

答案 0 :(得分:0)

这不是真正的解决方案,但是如果您还是后端的作者或管理员,我将尝试检查您的后端收到了什么样的数据以及服务器记录的内容说明了后端脚本失败的原因,因为500是服务器错误。