草庐IT

RESTTEMPLATE

全部标签

java - 如何使用 Spring RestTemplate 压缩 HTTP 请求?

如何压缩由org.springframework.web.client.RestTemplate创建的HTTPrequest?我正在使用Spring4.2.6和SpringBoot1.3.5(JavaSE,不是Android或Web浏览器中的Javascript)。我正在发出一些非常大的POST请求,我希望请求正文被压缩。 最佳答案 我提出了两种解决方案,一种更简单,没有流式传输,另一种支持流式传输。如果您不需要流媒体,请使用自定义ClientHttpRequestInterceptor,一个Spring特性。RestTemplat

Spring RestTemplate 与 Jackson 作为 HttpMessageConverter 和 joda DateTime 属性无法反序列化

场景如下。我有一个ObjectMapper(Jackson2),它注册了一个JodaModule,能够序列化和反序列化JodaDateTime类型。此ObjectMapper已使用自定义JSON字符串进行测试,并按预期工作。ObjectMapperobjectMapper=newObjectMapper();objectMapper.registerModule(newJodaModule());objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);objectMapper.setTimeZone(Ti

java - spring resttemplate url编码

我尝试用springsresttemplate做一个简单的休息调用:privatevoiddoLogout(StringendpointUrl,StringsessionId){template.getForObject("http://{enpointUrl}?method=logout&session={sessionId}",Object.class,endpointUrl,sessionId);}endpointUrl变量包含类似service.host.com/api/service.php的内容不幸的是,我的调用导致org.springframework.web.clien

Springs RestTemplate 默认连接池

只是想知道开箱即用的RestTemplate是使用连接池还是每次都建立一个新连接? 最佳答案 是的,SpringRestTemplateBuilder使用ApacheHttpClient进行池化(usage)。RestTemplateBuilder创建HttpComponentsClientHttpRequestFactory并使用HttpClientBuilder。HttpClientBuilder,默认情况下,将每个路由(主机)的池大小设置为5,将总池大小设置为10(source):s=System.getProperty("h

java - resttemplate getForObject 映射响应类型

2018年2月5日更新(大约4年后)...我再次对此进行了测试,因为人们一直在支持我的问题/答案,而SotiriosDelimanolis是正确的,我不应该写我的答案中的代码来完成这项工作。我使用了与我的问题中显示的基本相同的RestTemplate/REST服务设置,REST服务具有确认的响应内容类型application/json并且RestTemplate能够将响应毫无问题地处理成Map。强>我正在调用一个返回JSON的休息服务,如下所示:{"some.key":"somevalue","another.key":"anothervalue"}我想我可以使用java.util.M

java - Spring RestTemplate 使用自定义 header 和请求对象发布请求

在SpringRestTemplate中有一种方法可以将自定义header与POST请求对象一起发送。我已经尝试了可用的exchange方法。似乎我们可以将键值对与自定义​​header一起发送,但不能将请求对象本身附加到HttpEntity。以下代码说明了尝试,它似乎是400BadRequest用于服务器。HttpHeadersrequestHeaders=newHttpHeaders();requestHeaders.setContentType(MediaType.APPLICATION_JSON);HttpEntityhttpEntity=newHttpEntity(reque

java - Spring RestTemplate 发布响应

我不熟悉SpringRestTemplate。但是对于这个项目,我必须使用SpringRestTemplate发送一个POST调用来使用一个restapi。我正在使用此代码:StringrestCall=restTemplate.postForObject(url+restParm,null,String.class);这工作正常。我想检索HTTP状态代码(例如:200OK。)。我怎么能那样做?谢谢。 最佳答案 你使用postForEntity方法如下...ResponseEntityresponse=restTemplate.po

java - Spring restTemplate 获取原始 json 字符串

如何从springrest模板中获取原始json字符串?我尝试了以下代码,但它返回给我的json不带引号,这会导致其他问题,我怎样才能按原样获取json。ResponseEntityresponse=restTemplate.getForEntity(url,Object.class);Stringjson=response.getBody().toString(); 最佳答案 您甚至不需要ResponseEntity!只需使用getForObject与String.class类似:finalRestTemplaterestTemp

java - 使用 RestTemplate 时如何在分段上传中设置文件的内容类型(来自休息客户端)

我尝试上传的文件将始终是xml文件。我想将内容类型设置为application/xml这是我的代码:MultiValueMap原始请求如下所示:Content-Type:multipart/form-data;boundary=gbTw7ZJbcdbHIeCRqdX81DVTFfA-oteHHEqgmlzUser-Agent:Java/1.7.0_67Host:some.hostConnection:keep-aliveContent-Length:202866--gbTw7ZJbcdbHIeCRqdX81DVTFfA-oteHHEqgmlzContent-Disposition:fo

java - RestTemplate 不转义 url

我正在像这样成功使用SpringRestTemplate:Stringurl="http://example.com/path/to/my/thing/{parameter}";ResponseEntityresponse=restTemplate.postForEntity(url,payload,MyClass.class,parameter);这很好。但是,有时parameter是%2F。我知道这并不理想,但它就是这样。正确的URL应该是:http://example.com/path/to/my/thing/%2F但是当我将parameter设置为"%2F"它被双重转义为htt