如何在retroift POST请求中添加常量Body字段?

时间:2016-12-19 00:33:48

标签: android http-post retrofit2 http-post-vars

您可以使用@Headers({})添加静态标头以改进请求,并使用方法参数中的@field添加特定正文字段。但我想在post请求的主体中提交常量(非json)名称 - 值参数。改造documentation没有提到它。我不应该使用拦截器来做到这一点。方法参数中的@FieldMap是我唯一的选择吗?或者是否有一个注释允许常量的Fieldmap类似于@Headers?

1 个答案:

答案 0 :(得分:1)

您可以使用okHttp' RequestBody作为参数

@POST("path")
Call<ResponseBody> postWithPlainText(@Body RequestBody requestBody);

然后像这样使用它

String plainText = "Your constant here";  
RequestBody requestBody = RequestBody.create(MediaType.parse("text/plain"), plainText);

Call<ResponseBody> call = service.postWithPlainText(requestBody); 
Response<ResponseBody> response = call.execute();