如何用原生feign简化http的调用

本文介绍如何使用Feign客户端发起POST请求,并将参数放置在请求体中。通过具体的代码示例,展示了Feign配置、请求接口定义及调用过程,适用于Spring Cloud微服务架构下的API调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1    最大的坑先记录一下

  利用feign发post请求,参数放在请求体中

package com.example.demo.controller;

import com.example.demo.bean.User;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/user")
public class UserAction {

    @RequestMapping("/list")
    public Object list(){
        return "sdfsdfsdfsdf";
    }

    @RequestMapping("/add")
    public Object add(@RequestBody User user){
        return "sdfsdfsdfsdf";
    }
    @RequestMapping("/query")
    public Object query(@RequestParam String name){
        System.out.println(name);
        return "query";
    }

}
package com.example.demo.feign;

import com.example.demo.bean.User;
import feign.*;

import java.util.Map;

public interface Invorker {

    @RequestLine(value = "POST /user/add")
    @Headers("Content-Type: application/json")
    public Object add(User user);

    @RequestLine("GET /user/list")
    public Object list();

    @RequestLine("GET /user/query")
    public Object query(@QueryMap Map map);
}
package com.example.demo.controller;

import com.example.demo.bean.User;
import com.example.demo.feign.Invorker;
import feign.Feign;
import feign.gson.GsonDecoder;
import feign.gson.GsonEncoder;

import java.util.HashMap;
import java.util.Map;

public class TestAction {

    public  static  void  main(String[] args){
        Invorker invorker = Feign.builder()
                .encoder(new GsonEncoder())
                .decoder(new GsonDecoder())
                .target(Invorker.class, "http://localhost:8080");
        User u = new User("dfsdfsf","hzz",30);
        Object o = invorker.list();
        Object o2 =  invorker.add(u);
        Map m = new HashMap();
        m.put("name","sdfsdf");
        Object o3 = invorker.query(m);
        System.out.println(o2);
        System.out.println(o);
        System.out.println(o3);
//
    }
}

 

转载于:https://www.cnblogs.com/hzzhero/p/9867966.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值