Pau*_*aul 5 java rest spring http
在我沮丧地放弃并改写这种"旧学校风格"(不使用Spring)之前,我希望知道Spring的HTTP客户端知识的人可以帮助我.
我有一些大型数据,我想通过HTTP发送到Web服务.我希望能够以块状发送它.春源代码清楚地表明,如果调用SimpleClientHttpRequestFactory的setBufferRequestBody方法,它的布尔参数设置false,得到的ClientHttpRequest将'流’到它的目标,即,它会用'块传输编码’.但是,有一点需要注意:只有在请求内容长度未知时才会使用分块编码.
那是我的问题.我不能,笨拙地说,弄清楚如何使内容长度未知.这里的场景可能是一个大字节数组,我希望以较小的块发送,而不是一次性发送.但在我看来,几个相关的RestTemplate调用,例如,exchange()并且postForObject(),确切地知道请求内容是什么以及它有多长.所以,按照这样的顺序:
HttpEntity<Object> entity = new HttpEntity<Object>(payload, headers);
ResponseEntity<byte[]> response = null;
response = restTemplate.exchange(svcUrl, httpMethod, entity, byte[].class);
Run Code Online (Sandbox Code Playgroud)
交换逻辑可以检查HttpEntity以确定请求体的长度(有效负载,在我的示例代码中).因此,请求与Content-Length标头一起发送.
我觉得我必须遗漏一些非常明显的东西.我很感激你能解决这个问题.
环境:
| 归档时间: |
|
| 查看次数: |
3274 次 |
| 最近记录: |