【发布时间】:2021-06-02 05:31:57
【问题描述】:
我可以通过邮筒成功发送电子邮件,并且该文件也在电子邮件中收到但它是空的 这就是我获取文件的方式
Intent intent4 = new Intent(this, NormalFilePickActivity.class);
intent4.putExtra(Constant.MAX_NUMBER, 1);
intent4.putExtra(NormalFilePickActivity.SUFFIX, new String[]{"pdf"});
startActivityForResult(intent4, Constant.REQUEST_CODE_PICK_FILE);
if (requestCode == Constant.REQUEST_CODE_PICK_FILE) {
if (resultCode == RESULT_OK) {
ArrayList<NormalFile> list = null;
if (data != null) {
list=data.getParcelableArrayListExtra(Constant.RESULT_PICK_FILE);
filePath = list.get(0).getPath();
file = FileUtils.getFileByPath(filePath);
Log.d(TAG, "onActivityResult: file path " + filePath);
Log.d(TAG, "onActivityResult: file absolute path " +
file.getAbsolutePath());
}
}
}
这就是我将它发送到 mail gun api 的方式
我的方法
@Multipart
@POST("messages")
Call<ResponseBody> sendEmail1(@Body RequestBody requestBody);
以及创建和解析请求体
RequestBody surveyBody = RequestBody.create(MediaType.parse("pdf/*"), file);
RequestBody requestBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("to", to)
.addFormDataPart("from", CurrentUser.getEmail())
.addFormDataPart("subject", subject)
.addFormDataPart("text", body)
.addFormDataPart("attachment", "file", surveyBody)
.build();
我错在这里已经一个星期了,我找不到解决方案我知道错误将在解析中的某个地方
【问题讨论】:
-
filePath 的值是多少? file.getAbsolutePath() 的值是多少?
-
if (list.size() != 0 || list != null)你检查空值太晚了。 -
文件路径 /storage/emulated/0/WhatsApp/Media/WhatsApp Documents/regression.pdf 文件绝对路径 /storage/emulated/0/WhatsApp/Media/WhatsApp Documents/regression.pdf
-
更新了检查代码...仍然不是我在电子邮件中收到的文件是空的
标签: java android api retrofit2 mailgun