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/
이런출력이 뜨고 오류가 생깁니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력