如何通过RestTemplate在头文件中使用自定义参数发送POST请求

我需要使用自定义参数(“data”包含路径)发送post请求,并将内容类型设置为text / plain.我查看了大量类似的问题,但没有一个解决方案有帮助.

该方法应列出此目录中的文件.

我的代码是

    public List<FileWrapper> getFileList() {

    MultiValueMap<String, String> map = new LinkedMultiValueMap<String, String>();
    map.add("data", "/public/");

    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.TEXT_PLAIN);

    HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<MultiValueMap<String, String>>(
            map, headers);
    String url = "http://192.168.1.51:8080/pi/FilesServlet";
    restTemplate.getMessageConverters().add(new FormHttpMessageConverter());
    restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
    String response = restTemplate
            .postForObject(url, request, String.class);
    List<FileWrapper> list = new ArrayList<>();
    for (String part : response.split("\\|")) {
        System.out.println("part " + part);
        list.add(new FileWrapper(part));
    }
    return list;
}

这是用javascript编写的等效工作代码:

function getFileList(direction){
$("div.file-list").html("<center><progress></progress></center>");
$.ajax({
  url: "http://192.168.1.51:8080/pi/FilesServlet",
  type: "POST",
  data: direction ,
  contentType: "text/plain"
})

由于请求返回空字符串意味着路径无效,因此不会添加该参数.预期的响应是file_name * file_size | file_name * file_size …

提前致谢.

最佳答案
从评论中的讨论来看,很明显您的请求对象不正确.如果要传递包含文件夹名称的纯字符串,则不需要MultiValueMap.试试发一个字符串,

    String data = "/public/"
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.TEXT_PLAIN);

    HttpEntity<String> request = new HttpEntity<String>(
            data, headers);
    String url = "http://192.168.1.51:8080/pi/FilesServlet";
    restTemplate.getMessageConverters().add(new FormHttpMessageConverter());
    restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
    String response = restTemplate
            .postForObject(url, request, String.class);

转载注明原文:如何通过RestTemplate在头文件中使用自定义参数发送POST请求 - 代码日志