使用改造在MultiPart请求中将HashMap发送到后端

时间:2018-04-03 12:41:09

标签: android http retrofit retrofit2 multipart

我试图使用改造来制作PUTrequest。除Classic Java对象内的数据外发送的所有参数。它包含一个和其他数据,但后端不添加任何参数。我尝试将HashMap添加为单独的部分" working_session_pauses_attributes"但也没发送。任何解决方案或建议?

提前致谢

 @Multipart
@PUT(WORKING_SESSION_PATH)
Observable<Response<WorkingSession>> updateWorkingSession(@Path(LOCATION_ID_VARIABLE) String locationId,
                                                          @Path(EMPLOYEE_ID_VARIABLE) String employeeId,
                                                          @Path(WORKING_SESSION_ID_VARIABLE) String workingSessionId,
                                                          @Part("working_session_id") String working_session_id,
                                                          @Part("ends_at") String ends_at,
                                                          @Part("starts_at") String starts_at,
                                                          @Part("secure_id") String secure_id,
                                                          @Part ("tag_ids[]") Long[] tag_ids,
                                                          @Part ("working_session_pauses_attributes") HashMap<Integer, UpdateBreakDataModel> working_session_pauses_attributes,
                                                          @Part ("data") CreateWorkingSessionRequestBody CreateWorkingSessionRequestBody,
                                                          @Part MultipartBody.Part end_signature,
                                                          @Part MultipartBody.Part start_signature_break,
                                                          @Part MultipartBody.Part end_signature_break);

1 个答案:

答案 0 :(得分:0)

我不知道你在做什么,你想要发帖请求但是你正在使用put,请检查。我正在向您展示我的代码如何使用Hash map发送数据。

这是我的方法声明:

@GET(ApiConstant.REQUEST_FORM_CHECK_OUT_ID)
    Call<CheckOutIdResponseParent> callRequestFormCheckoutId(@QueryMap Map<String, String> params);

&安培;在这里我使用hashmap调用该方法。

 Map<String, String> params = new HashMap<>();
            params.put("category_id", categoryId);
            params.put("currency", currency);
            params.put("language", language);

      ServiceApi mRetrofitCommonService = RetrofitClient.getInstance();
            Call<ProductListParentResponse> call = mRetrofitCommonService.callProductListApi(params);