retrofit2를 이용해 django고 이미지 파일을 전송하려고 하는데 오류가 생깁니다.

조회수 847회

현재 코틀린으로 retrofit2을 사용해 이미지를 올릴려고 하느데 꼭 코틀린이 아니여도 되니깐 이미지를 잔고로 보낼 수 있는 방법을 알려주세요 ㅜㅜ

private fun sendPhoto(fileName: String, file: File) {
    var requestBody : RequestBody = RequestBody.create(MediaType.parse("image/*"),file)
    var body : MultipartBody.Part = MultipartBody.Part.createFormData("uploaded_file", fileName, requestBody)

    var gson : Gson = GsonBuilder()
        .setLenient()
        .create()

    var retrofit = Retrofit.Builder()
        .baseUrl("http://192.168.0.36:8000")
        .addConverterFactory(GsonConverterFactory.create(gson))
        .build()

    var addfaceService:AddfaceService = retrofit.create(AddfaceService::class.java)
    addfaceService.requestAddface(body).enqueue(object: Callback<Addface> {
        override fun onFailure(call: Call<Addface>, t: Throwable) {
            Log.d("레트로핏 결과1", t.message)
        }

        override fun onResponse(call: Call<Addface>, response: Response<Addface>) {
            if (response?.isSuccessful){
                Log.d("레트로핏 결과2",""+response?.body().toString())
            }else{
                Toast.makeText(getApplicationContext(), "Some error occured...", Toast.LENGTH_LONG).show();
            }
        }
    })

이부분이 android에서 django로 이미지를 보내는 부분입니다.

def app_app_addface(request):
print("신호는 받음")
if request.method == 'POST':
    print("리퀘스트 로그" + str(request.body))
    photo = request.POST.get()

    print("photo = " +photo)
    return JsonResponse({'code': '0000', 'msg': '사진받았습니다.'}, status=200)

잔고에서 이 부분에서 이미지를 받는데

interface AddfaceService{
@Multipart
@POST("/app_addface/")
fun requestAddface(
    @Field("userid") userid:String,
    @Part file : MultipartBody.Part
): Call<Addface>

인터페이스는 이렇게 구현하였습니다.

Request body exceeded settings.DATA_UPLOAD_MAX_MEMORY_SIZE. Bad Request: /app_addface/

이런출력이 뜨고 오류가 생깁니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)