使用java的时候碰到http的get请求附带body的奇葩接口

今天接了个需求,要封装别人的接口处理数据,但是后来发现一直404,搞了半天他和我说这个请求是get不是post,

写一个解决方案,因为是公司内部代码,所以不能放代码,稍微说下自己的心得吧,新建了一个httpclient用来发送http消息,同时考虑到之前踩过一个坑,就是不要一次请求创建一个httpclient然后用完再销毁,原因是创建连接池会消耗大量的资源,但是只用一次就关了,会造成大量资源浪费,之前压测的时候会造成内存满了,然后后续的请求一直失败,因此使用单例模式创建了一个httpclient用来专门处理get请求

后面的别的操作是从https://stackoverflow.com/questions/12535016/apache-httpclient-get-with-body这篇文章里面找到的解决方法,借鉴了下思路,然后使用创建的单例httpclient来进行操作

HttpUriRequest request = RequestBuilder.get(uri)
        .setEntity(new StringEntity(entity))
        .setHeader(HttpHeaders.CONTENT_TYPE, "application/json")
        .build();

你可能感兴趣的:(遇到的bug/解决办法,http,json,网络协议)