【发布时间】:2020-05-18 23:22:27
【问题描述】:
我知道使用 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);
}
【问题讨论】:
-
你有没有用
@Multipart注解你的api方法? -
是的,我用过@Multipart
-
只是一个建议:你知道 PostMan 在右上角有一个选项
Code,当你点击它时,你可以找到任何特定编程语言请求该 API 的代码。只需使用它并尝试比较您的请求代码。在大多数情况下,它有助于解决问题。 -
@RakshithMR 1. 你是什么意思不使用改造:也许你有错误堆栈或至少有状态码或其他东西?请将此信息添加到您的问题 2。还请在您准备参数并调用
addService方法的位置添加代码 -
@art 其他请求工作正常。我得到一个 html 页面作为响应如果我请求 Json 类型它显示未经授权的错误正文,但它与邮递员一起工作正常。
标签: android retrofit2 multipartform-data multipart retrofit2.6