原生feign的使用之一(post请求 + body)

注意:本文讲的是原生feign,不是结合spring使用feign

  • 场景描述

在开发的时候遇到一个问题:由于种种原因,需要使用原生feign发起一个post请求,请求体是json格式。

先启一个服务,代码很简单

    @PostMapping(value = "/address/create")
    @ResponseBody
    public String createAddress(@RequestBody Address address) {
        System.out.println(address.getCountry() + "-----" + address.getProvince());
        return "OK";
    }

Address 类

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class Address {

    private String country;

    private String province;

}

上面是服务端的代码,下面看一下客户端的代码

定义 feign 客户端,这里边有两个方法,分别用于测试上图中说的两种情况

public interface AddressClient {

    @RequestLine("POST /address/create")
    @Headers("Content-Type: application/json")
    String createAddress(String content);

    @RequestLine("POST /address/create")
    @Headers("Content-Type: application/json")
    String createAddress(Address address);

}

开始测试

public class FeignTest {

    @Test
    public void test01() {
        AddressClient addressClient =
                Feign.builder().target(AddressClient.class, "http://localhost:8082");

        String ok =
                addressClient.createAddress("{\"country\": \"china\", \"province\": \"nanjing\"}");

        System.out.println("test01 " + ok);
    }

    @Test
    public void test02() {
        AddressClient addressClient = Feign.builder().encoder(new GsonEncoder())
                .target(AddressClient.class, "http://localhost:8082");

        Address address = new Address("china", "beijing");

        String ok = addressClient.createAddress(address);

        System.out.println("test02 " + ok);
    }

}

查看测试结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值