Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring RestTemplate postForObject的大小是否有限制?_Spring_Resttemplate - Fatal编程技术网

Spring RestTemplate postForObject的大小是否有限制?

Spring RestTemplate postForObject的大小是否有限制?,spring,resttemplate,Spring,Resttemplate,例如,如果帖子url为: {stime}&etime=${etime}&bpf=${bpf} 那么我们可以这样做: Map<String, String> vars = new HashMap<String, String>(); vars.put("bpf", bpf); ... responseString = restTemplate.postForObject(url, null, String.class,vars); Map vars=newhashmap

例如,如果帖子url为:

{stime}&etime=${etime}&bpf=${bpf}

那么我们可以这样做:

Map<String, String> vars = new HashMap<String, String>();
vars.put("bpf", bpf);

...
responseString = restTemplate.postForObject(url, null, String.class,vars);
Map vars=newhashmap();
可变投入(“bpf”,bpf);
...
responseString=restemplate.postForObject(url,null,String.class,vars);

如果bpf是一个字符串,那么bpf的大小有限制吗?它可以是任何尺寸吗?

不幸的是,答案是:“这取决于”

更准确地说:当您将
bpf
作为参数附加到URL时,无论您是在执行POST还是GET,这都无关紧要。有时,服务器将处理的URL的长度会受到限制,但这取决于服务器接受的内容,并且不能从作为客户端的RestTemplate中确定

例如,如果您向其发送REST请求的服务器是tomcat,那么对于tomcat 6.0或更高版本,完整头(URL、HTTP头等)的最大值默认为8kB;见例

以防万一,如果您也可以控制服务器端,您可以通过不将
bpf
作为参数发送,而是作为请求主体发送来更改预期的接口,如:

Map<String, String> vars = new HashMap<String, String>();
// vars.put("bpf", bpf); <--- not needed
responseString = restTemplate.postForObject(url, bpf, String.class, vars);
Map vars=newhashmap();

//可变投入(“bpf”,bpf) 不幸的是,答案是:“视情况而定”

更准确地说:当您将
bpf
作为参数附加到URL时,无论您是在执行POST还是GET,这都无关紧要。有时,服务器将处理的URL的长度会受到限制,但这取决于服务器接受的内容,并且不能从作为客户端的RestTemplate中确定

例如,如果您向其发送REST请求的服务器是tomcat,那么对于tomcat 6.0或更高版本,完整头(URL、HTTP头等)的最大值默认为8kB;见例

以防万一,如果您也可以控制服务器端,您可以通过不将
bpf
作为参数发送,而是作为请求主体发送来更改预期的接口,如:

Map<String, String> vars = new HashMap<String, String>();
// vars.put("bpf", bpf); <--- not needed
responseString = restTemplate.postForObject(url, bpf, String.class, vars);
Map vars=newhashmap();
//可变投入(“bpf”,bpf);