feign发起POST请求application/x-www-form-urlencoded

这是我之前写的一篇关于feign发起请求传参的博客feign
今天在开发过程中,对接方提供的接口请求方式是POST请求,用的也是body,但是body类型确是application/x-www-form-urlencoded。这种请求方式不同于json,同时也不同于form-data。form-data一般用来上传文件,而application/x-www-form-urlencoded是key-value形式,同时会进行url编码。
此时在代码里你需要指定发起请求时的传参格式:

@RequestLine("POST /***")
    @Headers({"Content-Type: application/x-www-form-urlencoded"})
    JSONObject saveData(@QueryMap Map<String,Object> params);

同时,注解不能用@RequestBody要用@QueryMap,否则接口还是接收不到你的请求参数。如果是json格式就可以直接用@RequestBody注解。

你可能感兴趣的:(日常工作问题,java,web开发,spring,java,后端)