как сделать пост-запрос с необработанными данными через шаблон весеннего отдыха - PullRequest
0 голосов
/ 04 мая 2018

Может кто-нибудь сказать мне, как отправить запрос 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);

Может кто-нибудь помочь?

Ответы [ 3 ]

0 голосов
/ 04 мая 2018

Вы пытались использовать postmaster и сначала проверили вывод. Если это работает, то вы можете пойти на почту или способ обмена. обмен возвращается и сообщение не.

0 голосов
/ 04 мая 2018

Попробуйте это:

@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 класс и изменить все поля на private с необходимыми геттерами и сеттерами. Вышеприведенный код предназначен только для демонстрационных целей.

0 голосов
/ 04 мая 2018

Пожалуйста, попробуйте с этим:

ResponseEntity<String> result = restTemplate.exchange(url, HttpMethod.POST, request, String.class);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...