Java 我可以尝试哪些HttpClient风格,它们可以执行url并以字符串形式获得响应?
我有一个非常简单的要求-我需要执行一个URL,将数据作为字符串返回,然后按原样返回该字符串。到目前为止,我正在使用Java 我可以尝试哪些HttpClient风格,它们可以执行url并以字符串形式获得响应?,java,performance,httpclient,resttemplate,Java,Performance,Httpclient,Resttemplate,我有一个非常简单的要求-我需要执行一个URL,将数据作为字符串返回,然后按原样返回该字符串。到目前为止,我正在使用restemplate进行调用,因为我需要将标题值也传递给我的服务url 下面是我目前使用的RestTemplate示例。我正在多线程环境中使用RestTemplate。我正在使用下面代码的项目对性能非常关键,因此我们没有对JSON字符串进行任何反序列化,我们只是返回从服务器获得的字符串 RestTemplate restTemplate = new RestTemplate();
restemplate
进行调用,因为我需要将标题值也传递给我的服务url
下面是我目前使用的RestTemplate示例。我正在多线程环境中使用RestTemplate。我正在使用下面代码的项目对性能非常关键,因此我们没有对JSON字符串进行任何反序列化,我们只是返回从服务器获得的字符串
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headerInfo = new HttpHeaders();
headerInfo.add("Client-Context", "some-value");
HttpEntity<Object> entity = new HttpEntity<Object>(headerInfo);
String response = restTemplate.exchange(url, HttpMethod.GET, entity, String.class);
// return this response back to customer
RestTemplate RestTemplate=new RestTemplate();
HttpHeaderInfo=新的HttpHeaders();
添加(“客户上下文”、“某些值”);
HttpEntity=新的HttpEntity(headerInfo);
String response=restemplate.exchange(url,HttpMethod.GET,entity,String.class);
//将此响应返回给客户
与RestTemplate相比,使用RestTemplate更快、效率更高,我还可以尝试哪些替代方法来替代RestTemplate?我认为性能可能与其他HttpClient相同,但我仍然想在我这方面尝试一下,看看性能会有什么不同
任何具有替代解决方案的示例都将对我有所帮助。您可以使用。它提供线程池和一些功能,使事情更容易开箱即用。它可能不会比您现在使用的性能更好,但您可以测试它。它看起来像这样(httpClient
是您决定并配置的一个实现):
您也可以直接使用,这更简单:
URL url = new URL("some-url");
URLConnection con = url.openConnection();
con.setRequestProperty("Client-Context", "some-value");
return IOUtils.toString(con.getInputStream(), "UTF-8");
当然,对于以上两个示例,您需要决定如何处理异常,并将
InputStream
转换为String
(IOUtils.toString()
是一个选项).我希望有人告诉我这一点,所以我现在就与你分享我所知道的-有很多插件可以为你处理所有网络呼叫-这里很少有:截击(在2013年谷歌I/O大会上展示)、改装、事件总线等。我会投票取消这个问题,因为我认为这些信息需要更广泛地传播。
URL url = new URL("some-url");
URLConnection con = url.openConnection();
con.setRequestProperty("Client-Context", "some-value");
return IOUtils.toString(con.getInputStream(), "UTF-8");