1

我知道使用 multipart 进行简单的文本身份验证是不明智的。但我需要将它与提供给我的 api 一起使用。我尝试了所有可能的方法。

邮递员可以正常工作,但改装 2 不行

请求类型详细信息

请求类型详细信息

尝试使用的代码

    //RequestBody requestNameRq = RequestBody.create(MediaType.parse("text/plain"),serviceNameValue);
    //RequestBody requestAmountRq = RequestBody.create(MediaType.parse("text/plain"),serviceAmountValue.toString());

/* Create Request Body */
//MultipartBody.Builder builder = new MultipartBody.Builder().setType(MultipartBody.FORM)
//        .addFormDataPart("service",serviceNameValue)
//        .addFormDataPart("amount", String.valueOf(serviceAmountValue));


//RequestBody requestBody = new MultipartBody.Builder().setType(MultipartBody.FORM)
//        .addFormDataPart("service",serviceNameValue)
//        .addFormDataPart("amount",serviceAmountValue.toString()).build();

//MultipartBody.Part  multipartRequestBody = MultipartBody.Part
//        .createFormData("service",serviceNameValue)
//        .createFormData("amount",serviceAmountValue.toString());



//MultipartBody multipartBody = builder.build();

API 服务代码

       @POST("services")
        Call<AddServiceResponse> addService(@Header("Authorization") String authToken,
                                            //@Body MultipartBody body);
                                            @Part("service") RequestBody service,
                                            @Part("amount") RequestBody amount);
                                            //@Part("service") String service,
                                            //@Part("amount") String password);
                                            //@Part("service") RequestBody service,
                                            //@Part("amount") RequestBody amount);
}
4

2 回答 2

2

请尝试添加

@Multipart

@POST("services")
于 2020-02-03T08:11:33.397 回答
0

修改您的 ApiService 类

@Multipart
@POST("services")
        Call<AddServiceResponse> addService(
                                       @Header("Authorization") String authToken,
                                       @Part("service") MultipartBody.Part service,
                                       @Part("amount") MultipartBody.Part amount);

然后创建 MultipartBody

MultipartBody.Part serviceBody = MultipartBody.Part.createFormData("service", "Somethin2");
MultipartBody.Part amountBody = MultipartBody.Part.createFormData("amount", "2344");

然后打电话

apiService.addService(serviceBody, amountBody);
于 2020-02-03T10:37:19.560 回答