我正在发送经过翻新的multipart请求,它工作正常。但是当我的文件名包含波斯字符时,我的应用程序崩溃了,并出现以下错误:



这是我发送多部分请求的方式:

    File imageFile = new File(imagePath);

    ProgressRequestBody fileBody = new ProgressRequestBody(imageFile, this);
    MultipartBody.Part filePart = MultipartBody.Part.createFormData("photo", imageFile.getName(), fileBody);

    RetroInterface retroInterface = RetrofitClientInstance.getRetrofitInstance().create(RetroInterface.class);
    Call<SendFileResponse> call = retroInterface.sendPhoto(token, myHashmap, filePart);

我该如何解决这个问题?

最佳答案

我的解决方案不是完美的,因为它可以更改某些字符,所以要放置URLEncoder.encode(file.name, "utf-8")而不是纯名称。

10-08 06:13