我尝试了以下但是在响应时我得到500错误(内部服务器错误) – 帮助我在上面的屏幕截图中设计请求的界面…谢谢
@Multipart @POST("myrecord") Call<ResponseBody> addRecord(@Query("token") String token,@Query("userid") int userId,@Query("name") String name,@Part("file") RequestBody file); File file = new File(getRealPathFromURI(data.getData())); RequestBody requestFile = RequestBody.create(MediaType.parse("image/*"),getRealPathFromURI(data.getData()));` Call<ResponseBody> responseBodyCall = service.addRecord(token,userId,"newFileName",requestFile); responseBodyCall.enqueue(new Callback<ResponseBody>() { @Override public void onResponse(Call<ResponseBody> call,Response<ResponseBody> response) { Log.d("Response","="+response.code()); Log.d("Response","= "+response.message()); } @Override public void onFailure(Call<ResponseBody> call,Throwable t) { Log.d("failure","message = " + t.getMessage()); Log.d("failure","cause = " + t.getCause()); } });`
解决方法
以下代码工作:)
@Multipart @POST("myrecord") Call<ResponseBody> addRecord(@Query("token") String token,@Part MultipartBody.Part file); @Override public void onActivityResult(int requestCode,int resultCode,Intent data) { super.onActivityResult(requestCode,resultCode,data); if ((requestCode == FILE_SELECT_CODE) && (resultCode == -1)) { File file = new File(getRealPathFromURI(data.getData())); RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"),getRealPathFromURI(data.getData())); MultipartBody.Part multipartBody =MultipartBody.Part.createFormData("file",file.getName(),requestFile); Call<ResponseBody> responseBodyCall = service.addRecord(token,"fileName",multipartBody); responseBodyCall.enqueue(new Callback<ResponseBody>() { @Override public void onResponse(Call<ResponseBody> call,Response<ResponseBody> response) { Log.d("Success","success "+response.code()); Log.d("Success","success "+response.message()); } @Override public void onFailure(Call<ResponseBody> call,"cause = " + t.getCause()); } }); } }
原文地址:https://www.jb51.cc/android/317276.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。