forest icon indicating copy to clipboard operation
forest copied to clipboard

Get请求不支持消息体中带Json Body,发送时消息体被忽略?

Open CodingOX opened this issue 2 years ago • 3 comments

RT。 类似的接口:

public interface Client {
    @Get(url = "http://127.0.0.1:8090/xxx", contentType = "application/json")
    public String saveInfo(@Body("username") MsgInfo info);
}

别人提供的接口,所以对接口合理性没有讨论的余地,最新版的forest也是不支持,通过打印内容排查了大概是忽略了消息体进行发送的。 查了下Get请求通过JSON BODY传参,发现HTTP协议并没有禁止,大体的讨论可以参考:https://zhuanlan.zhihu.com/p/456921996

CodingOX avatar Oct 02 '22 09:10 CodingOX

okhttp 会自动忽律 GET 请求的 Body 数据 把 backend 换成 httpclient 就可以了

mySingleLive avatar Oct 10 '22 05:10 mySingleLive

okhttp 会自动忽律 GET 请求的 Body 数据 把 backend 换成 httpclient 就可以了

这个httpclient 看源码指的应该是org.apache.http.client.HttpClient 吧?

JDK9之后的java.net.http.HttpClient的实现jdk.internal.net.http.HttpClientImpl也是一个性能更好的HttpClient...

CodingOX avatar Oct 10 '22 07:10 CodingOX

没错,是apache的httpclient

mySingleLive avatar Oct 12 '22 04:10 mySingleLive

没错,是apache的httpclient

谢谢!

CodingOX avatar Oct 21 '22 15:10 CodingOX