DioError [DioErrorType.RESPONSE]: Http status error [500], why?

9,088

this means your sever responded with InternalServerError but dio sees this as an exception to fix this either use try and catch blocs or pass this to your dio instace

 final res = await dio.delete(
          url,
          data: postData,
          options: Options(

            followRedirects: false,
            // will not throw errors
            validateStatus: (status) => true,
            headers: headers,
          ),
        );


Share:
9,088
Admin
Author by

Admin

Updated on December 28, 2022

Comments

  • Admin
    Admin over 1 year

    I'm new to flutter, I use Dio in my project to make Members Register features.. but everytime I execute the register process, the Debug Console give me this error

    I/flutter (13428): Instance of 'FormData'
    I/flutter (13428): DioError [DioErrorType.RESPONSE]: Http status error [500]
    

    however, when I tried to register with POSTMAN, It was a success. So I'm not sure where the problem is.. here's my code, could you guys please help me? i've been stuck on this for weeks..

    final String url = "https://api.censored.org/api/members/register";
    
    Dio.FormData formData = Dio.FormData.fromMap({
      "nama_lengkap": name,
      "tempat_lahir": tempatlahir,
      "tanggal_lahir": selectedDate.toString(),
      "email": email,
      "password": password,
      "username": username,
      "nomor_ktp": noKTP,
      "alamat_ktp": alamatktpmember,
      "alamat_domisili": alamatmember,
      "pekerjaan": pekerjaanmember,
      "alamat_pekerjaan": alamatperusahaanmember,
      "no_whatsapp": noWAmember,
      "no_hp": noteleponmember,
      "nama_pemilik_rekening": namarekmember,
      "nomor_rekening": norekmember,
      "bank_id": _valBank,
      "aggrement": _eulargprogramming,
    
      //Foto
      "foto_ktp": await Dio.MultipartFile.fromFile(_fotoKtp.path),
      "selfie_dengan_ktp": await Dio.MultipartFile.fromFile(_fotoSelfie.path),
      "foto_kk": await Dio.MultipartFile.fromFile(_fotoKK.path),
      "foto_pengenal_lainnya":
          await Dio.MultipartFile.fromFile(_fotoKartu.path),
      "foto_buku_rekening":
          await Dio.MultipartFile.fromFile(_fotoRekening.path),
      "foto_profil": await Dio.MultipartFile.fromFile(_fotoSelfie.path),
    
      //Array
      "penjamin": {
        "stakeholder_id": _subrgProgramming1,
        "nama": penjaminNama,
        "nomor_ktp": penjaminNoktp,
        "alamat_ktp": penjaminAlamat,
        "alamat_domisili": penjaminDomisili,
        "no_hp": notelppenjamin,
      },
      "sosial_media": [
        {
          "sosial_media_id": _sosmedrgprogramming,
          "nama": sosialmediamember,
          "screenshot": await Dio.MultipartFile.fromFile(_fotoSosmed.path),
        }
      ],
      "saudara_kerabat": [
        {
          "stakeholder_id": 4,
          "nama": namasaudara,
          "no_hp": notelpsaudara,
        },
        {
          "stakeholder_id": 5,
          "nama": namakerabat1,
          "no_hp": notelpkerabat1,
        },
        {
          "stakeholder_id": 5,
          "nama": namakerabat2,
          "no_hp": notelpkerabat2,
        },
        {
          "stakeholder_id": 5,
          "nama": namakerabat3,
          "no_hp": notelpkerabat3,
        }
      ],
    });
    print(formData);
    var res;
    try {
      Dio.Dio doo = Dio.Dio();
      doo.options.headers['Accept'] = 'application/json';
      doo.options.contentType = 'application/json';
      doo.options.followRedirects = false;
      Dio.Response response = await doo.post(url, data: formData);
    
      if (response.statusCode == 200) {
        print(response.data);
        res = response;
        final data = jsonDecode(res.body);
        print(res);
    
        int regvalue = data['value'];
        String message = data['message'];
        if (regvalue == 1) {
          setState(() {
            Navigator.pop(context);
          });
          print(message);
          registerToast(message);
        } else if (regvalue == 2) {
          print(message);
          registerToast(message);
        } else {
          print(message);
          registerToast(message);
        }
      }
    } on Dio.DioError catch (e) {
      if (e.response.statusCode == 422) {
        print(e.response.data);
      }
    } on Dio.DioError catch (e) {
      if (e.response.statusCode == 500) {
        print(e.response.data);
      }
    }
    
    
    }
    
      registerToast(String toast) {
        return Fluttertoast.showToast(
            msg: toast,
            toastLength: Toast.LENGTH_SHORT,
            gravity: ToastGravity.BOTTOM,
            timeInSecForIos: 1,
            backgroundColor: Colors.red,
            textColor: Colors.white);
      }
    
  • Admin
    Admin about 3 years
    I'll try that and would let you know if it's work.. but what kind of "Internal Server error" ? is it like I'm sending invalid data ?
  • Ahmed Masoud
    Ahmed Masoud about 3 years
    Internal Server error most likely means there is uncaught exception some where which leads to ending the request life cycle without appropriate response ,,, since the developer is using server side framework like Django or Laravel , it [the frame work] will format the exception and responded with this error to not leave the request hanging for ever
  • Shariar Saimon
    Shariar Saimon over 2 years
    can you help me with the code below? How did you post this list of image objects in social_media using dio? "sosial_media": [ { "sosial_media_id": _sosmedrgprogramming, "nama": sosialmediamember, "screenshot": await Dio.MultipartFile.fromFile(_fotoSosmed.path), } ],
  • José Zenteno
    José Zenteno over 2 years
    String filename = _image.path.split('/').last; FormData formData = FormData.fromMap({ "chat_id": chatID, "file": await MultipartFile.fromFile(_image.path, filename: filename), });