java - 如何通过 Spring Rest 模板使用原始数据进行发布请求

标签 java api spring-boot heap-analytics

有人可以告诉我如何发送带有原始数据参数的 POST 请求,如下图所示 enter image description here

我尝试了以下代码,但它不起作用

HttpHeaders headers = new HttpHeaders();
                headers.setContentType(MediaType.APPLICATION_JSON);
            JsonObject properties = new JsonObject();
            MultiValueMap<String, String> params = new LinkedMultiValueMap<>();         
            try {

                properties.addProperty("app_id", appId);
                properties.addProperty("identity","TestAPI");
                properties.addProperty("event", "TestCompleted");
                properties.addProperty("testType", t.getTestType());
                properties.addProperty("testName",t.getTestName());
                properties.addProperty("chapter","");
                properties.addProperty("module","");
                properties.addProperty("pattern",t.getTestPattern());
                HttpEntity<String> request = new HttpEntity<>(
                        properties.toString(), headers);
               // params.add("properties", properties.toString());
                 restTemplate.postForObject(url, request, String.class);

有人可以帮忙吗?

最佳答案

试试这个:

@RestController
public class SampleController { 
    @RequestMapping("/req")
    public String performReqest(){
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);        
        JsonObject properties = new JsonObject();
        properties.addProperty("no", "123");
        properties.addProperty("name", "stackoverflow");
        HttpEntity<String> request = new HttpEntity<>(properties.toString(), headers);
        RestTemplate restTemplate = new RestTemplate();
        String response = restTemplate.postForObject("http://localhost:4040/student", request, String.class);
        return "Response from Server is : "+response;       
    }

    @RequestMapping("/student")
    public String consumeStudent(@RequestBody Student student){
        System.out.println(student);
        return "Hello.."+student.name;
    }   
}

class Student{
    public int no;
    public String name; 
    public Map<String,String> properties;   
}

不要忘记移动 Student 类,并使用 require getter 和 setter 将所有字段更改为 private 。 以上代码仅用于演示目的。

关于java - 如何通过 Spring Rest 模板使用原始数据进行发布请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50171616/

相关文章:

java - 使用带有 OnException 定义的 adviceWith 进行 Camel 路由测试

java - SSLSocketImpl.getEnabledCipherSuites 中的 NPE

asp.net - 有什么好的视频聊天 API 可以集成到 ASP .NET MVC 2 Web 应用程序中吗?

jQuery:无法获取元素的值

spring-boot - 将外部第三方属性文件与 Spring Boot Fat Jar 一起使用

java - 如何使用redis或memcached配置tomcat6或7共享 session ?

Java字符串正则表达式替换

django - 使用 Neo4J 和 Django 创建 REST API

c++ - 创建 Windows 应用程序的最佳方式

Java derby嵌入式数据库错误: The syntax of the string representation of a date/time value is incorrect