如何通过带有标题中的自定义参数的RestTemplate发送POST请求

Asalas77:

我需要发送带有自定义参数(包含路径的“数据”)的发布请求,并将内容类型设置为文本/纯文本。我翻阅了很多类似的问题,但是发布的解决方案都没有帮助。

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

我的代码是

    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 ...

提前致谢。

Nilesh:

从评论中的讨论中,很明显您的请求对象是不正确的。如果要传递包含文件夹名称的纯字符串,则不需要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);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Spring RestTemplate到带有自定义标头和请求对象的POST请求

使用自定义请求对象时带有可选参数的Spring @RequestMapping

如何使用cURL发送带有请求参数的POST请求?

如何在Swagger UI中发送带有请求的自定义标头?

如何在ActionBar标题中设置自定义字体?

如何使用Spring的WebClient发送带有自定义标头的删除请求?

具有自定义标题的Resttemplate GET请求

通过代理连接发送带有标题的aiohttp发布请求

静态管理中带有图像的自定义标题

如何在自定义验证规则的通过功能中发送多个参数

UITabBarItem默认带有自定义标题

带有自定义标头和参数的RestTemplate GET请求导致400(空)

如何从GTM自定义标记模板发送POST请求?

如何使用python通过POST请求将带有元数据(标题,描述)的媒体发送到WordPress REST API

如何在标题中进行自定义导航

通过Gmail发送带有自定义方案的链接

ios发送带有POST参数的POST请求

R自定义函数-在标题中包含参数值

libcurl:带有自定义数据的POST请求

带有自定义节标题的iOS的UITable视图

如何在没有插件的自定义wordpress主题中添加带有图标的搜索框

如何在表单标题中创建自定义视图

将菜单放在带有自定义主题的标题中

使用Flash发送带有自定义标头的POST请求

带有自定义标题的 TUpDown 和 TEdit

带有 HTACCESS 的自定义参数

python请求带有标题和参数的POST

如何将带有 NotificationPusher 组件的自定义有效负载参数发送到苹果设备?

通过 laravel 自定义请求类的参数太少