nutzam / nutzboot

NutzBoot,简称NB,是可靠的企业级微服务框架,提供自动配置,嵌入式web服务,分布式会话,服务治理,负载均衡,hystrix,RPC等一篮子解决方案
https://nutz.io
Apache License 2.0
501 stars 138 forks source link

feign 方法转换问题 #83

Closed Rekoe closed 6 years ago

Rekoe commented 6 years ago

@haoqoo 请问这个怎么转换成feign的写法? RT

    String body = Json.toJson(NutMap.NEW().addv("touser", sb).addv("agentid", "1111111").addv("msgtype", "text").addv("text", NutMap.NEW().addv("content", text + "服务器时间:" + Times.sDT(data))));
        Http.post3("https://oapi.dingtalk.com/message/send?access_token=" + getAccessToken(), body, Header.create().asJsonContentType(), 6000).getContent();
wendal commented 6 years ago

我猜是这样:

public interface DingDing {

    @RequestLine("POST /message/send?access_token={at}")
    @Headers("Content-Type: application/json")
    void sendMessage(@Param("at")String access_token, @Param("touser")String touser, ......);
}

@FeignInject(encoder="nutzjson", decoder="nutzjson")
protected DingDing dd;
wendal commented 6 years ago

提醒一下, 上述的@Param是feign的注解

Rekoe commented 6 years ago

好像不是 我按照官方的写的 没有效果

        @RequestLine("POST /message/send?access_token={access_token}")
        @Headers("Content-Type: application/json")
        @Body("{\"touser\": \"{touser}\", \"agentid\": \"{agentid}\",\"msgtype\":\"text\",\"text\":{\"content\":\"{content}\"}}")
        String sendDingDingMsg(@Param("access_token") String access_token, @Param("touser") String touser, @Param("agentid") String agentid, @Param("content") String content);
wendal commented 6 years ago

日志设置为full嘛

Rekoe commented 6 years ago

解决了, 这样处理的,不晓得是不是有更好的方法

@RequestLine("POST /message/send?access_token={access_token}")
        @Headers("Content-Type: application/json")
        @Body("{msg}")
        String send(@Param("access_token") String access_token, @Param("msg") String msg);
wendal commented 6 years ago

我给的写法不对?

Rekoe commented 6 years ago

你的那个 不能放body中吧

wendal commented 6 years ago

http.post的时候不就是放到body吗?

Rekoe commented 6 years ago

现在问题都解决了

wendal commented 6 years ago

你那解法就是绕过去而已