当前位置: 首页 > 知识库问答 >
问题:

Retrofit2:如何在android中使用JSONObject上传图像

别峻
2023-03-14

我正在尝试用相机运行时拍摄的一张图像发布JSONObject。如何在android中使用改造发布图像。这是我的界面

 @Multipart
@POST("/upload")
Call<Response> getDetails(@Part("empsno") String  empsno,
                                @Part("time")String deliveryTime,
                                @Part("uploadFile") MultipartBody.Part part,
                                @Part("remarks")String remarks,
                                @Part("receiver")String receivedBy,
                                @Part("Address")String ipAddress
                                );

我用来上传图片和其他细节的代码

 JSONObject oJSONObject = new JSONObject();
        oJSONObject.put("empsno", strEmpsno);
        oJSONObject.put("time", strtime);
        oJSONObject.put("remarks", strRemarks);
        oJSONObject.put("receiver", strReceiver);
        oJSONObject.put("Address", straddress);
        oJSONObject.put("uploadFile", imageFolderPath + "/" + imageName);

RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file);
MultipartBody.Part body = MultipartBody.Part.createFormData("uploadFile", file.getName(), requestFile);

xInterface interface = retrofit.create(xInterface.class);
Call<Response> podResponsecall = interface.getDetails(strEmpsno, strtime,
                body, strRemarks, strReceiver, straddress);


  podResponsecall.enqueue(new Callback<Response>() {
            @Override
            public void onResponse(Response<Response> response) {
                String val = response.body() + "";
                Log.e(TAG, "onResponse: " + val);
            }

            @Override
            public void onFailure(Throwable t) {
                Log.e(TAG, "onFailure: " + t.getLocalizedMessage());
            }
        });

输出-onFailure:JSON必须以数组或对象开头。

我不知道这是对还是错。请帮助我发布一些图片以及使用Reformat2 beta 3的其他详细信息。

共有2个答案

司马念
2023-03-14

代替

@Multipart
@POST("/upload")
Call<ResponseBody> getDetails(@Part("empsno") RequestBody empsno,
                                @Part("time")RequestBody deliveryTime,
                                @Part("uploadFile") MultipartBody.Part part,
                                @Part("remarks")RequestBody remarks,
                                @Part("receiver")RequestBody receivedBy,
                                @Part("Address")RequestBody ipAddress
                                );

而且在

Call<ResponseBody> podResponsecall = interface.getDetails(strEmpsno, strtime,
                body, strRemarks, strReceiver, straddress);
锺离刚洁
2023-03-14

服务类别:

    @Multipart
    @POST("upload")
    Call<Void> upload(@Part("model") RequestBody model,  @Part MultipartBody.Part file); 

改装2部分:

    Gson gson = new GsonBuilder().setLenient().create();
    RequestBody modelBody = RequestBody.create(MediaType.parse("application/json"), gson.toJson(modelPojo));
    RequestBody reqFileBody = RequestBody.create(MediaType.parse("multipart/form-data"), file);
    MultipartBody.Part mPart1 = MultipartBody.Part.createFormData("file","name",reqFileBody);

JavaSpring:

   @PostMapping(value="/upload" ,consumes = {"multipart/form-data","application/json"})
    public ResponseEntity<Object> uploadImagebyEmail(@RequestPart("model") Object model,@RequestPart("file") MultipartFile uploadfile  ) throws IOException {
    return //codes here...   
    }   
 类似资料:
  • 问题内容: 我正在尝试使用jQuery和Ajax函数上传图像,以及如何获取图像文件的所有详细信息,例如我们使用的php 这是我的代码 JS 控制者 视图 响应 C:\ fakepath \ Koala.jpg您没有选择要上传的文件。 请帮忙 问题答案: 您可以在html5中使用FormData API。 您的表格必须是: 然后jQuery: 然后,在控制器中,您将获得数组中的文件。

  • 如果我在room数据库实体中使用JSONObject,我会遇到一个问题。 我有三个类,第一个类是FormEntity,它有一个子类FormDataEntity,而这个FormDataEntity类有一个子类,它有JSONObject。因此,我从api获取数据,其中有一个名为“GFPDF_FORM_Settings”的JSONObject。在此输入图像说明 因此,当从API中使用GSON转换获取数据

  • 我尝试了很多解决办法,但没有一次对我有效。 我以这种方式接收图像数据: 和使用multipart上载图像 我的接口是: 但仍收到null响应,而不是true或FALSE: 提前致谢

  • 你好,我正在使用改型上传图像文件。有人知道怎么进去吗

  • 经过一些研究,我发现了一个用于多部分文件上传的开放库。在我的情况下,我想上传一个图像使用PUT请求,其中的图像要么是从画廊或相机选择。以下是我正在使用的资源:1。https://github.com/gotev/android-upload-service2.https://www.simplifiedcoding.net/android-upload-image-to-server/#comme

  • 我正在通过共享按钮将视频上传到youtube。如果我点击上传按钮,它会显示社交图标,比如whatsapp、facebook、youtube。当我点击youtube时,它应该被上传到youtube。 下面是我的代码: 选择视频后,我可以选择youtube图标。然后,您的Tube窗口会自动关闭。任何建议都是非常可观的。谢谢!