问题描述
我有以下代码
public void uploadDocument(Long utilityPaymentId,File file,String type) {
RequestBody requestBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("type_file",type)
.addPart(getPart(file,"file"))
.build();
doPostRequest(requestBody,getUploadUtilityDocument(utilityPaymentId));
}
和
public void doPostRequest(RequestBody requestBody,String url) {
Request.Builder request = new Request.Builder()
.url(url)
.method("POST",RequestBody.create(null,new byte[0]))
.post(requestBody);
if (User.getInstance().getAuth() != null) {
request.header("Authorization","Bearer " + User.getInstance().getAuth().getAccessToken());
}
request(request.build(),url,null);
}
和
private void request(Request request,String url,final String key,Object extra) {
final String req = request.toString();
final Object finalObject = extra;
httpClient.newCall(request)
.enqueue(new Callback() {
@Override
public void onFailure(Call call,IOException e) {
//...
}
@Override
public void onResponse(Call call,Response response) throws IOException {
//...
}
});
}
和
private final OkHttpClient httpClient = buildClient();
private OkHttpClient buildClient() {
return new OkHttpClient.Builder()
.readTimeout(30,TimeUnit.SECONDS)
.connectTimeout(30,TimeUnit.SECONDS)
.writeTimeout(30,TimeUnit.SECONDS)
.addInterceptor(new LoggingInterceptor.Builder()
.loggable(true)
.setLevel(Level.BODY)
.log(Platform.INFO)
.request("Request")
.response("Response")
.addHeader("version",BuildConfig.VERSION_NAME)
.build())
.build();
}
问题是,当我尝试上传pdf文件而不是图像文件时,该呼叫无法正常工作。图像文件非常好,pdf文件不是很多。如果我在探查器中查找,它只会不断地反复调用该URL,而不包含任何内容。为什么呢?
我尝试了添加文件的其他方法(用我们在.addPart(getPart(file,"file"))
上找到的其他变体替换了文件),但似乎没有任何效果。首先,我不知道发生了什么,其次...问题可能是什么原因造成的!!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)