Вставить данные из POST Curl в JAVA Spring

У меня есть этот JSON POST URLHTTP: // локальный: 8080 / демо / тест‘из PHP

'{"postby_id":"1","title":"ftkjhg","is_private":"0","status":"1","post_type_id":"1","type":"2","p_id":"1","ve_id":"3","link":"1111111"}'

мой веб-контроллер

    @RequestMapping(value = "/test", method = RequestMethod.POST)

@ResponseBody
void creMysqlCall() throws Exception {creativityService.creMysqlCall();

}

Сервисный файл

public void creMysqlCall() throws Exception {
creativityDao.creMysqlCall();
}

файл myDAO

public void creMysqlCall() throws Exception {
SimpleJdbcInsert simpleJdbcInsert = new SimpleJdbcInsert(masterJdbcTemplate).withTableName("posts")
.usingColumns("postby_id","title","is_private","post_type_id","status","wall_type","p_id","ve_id","link");
Map<String, Object> creInsertMap = Maps.newHashMap();
creInsertMap.put("postby_id", "");
creInsertMap.put("title", "");
creInsertMap.put("is_private", "");
creInsertMap.put("post_type_id", "");
creInsertMap.put("status", "");
creInsertMap.put("wall_type", "");
creInsertMap.put("p_id", "");
creInsertMap.put("ve_id", "");

creInsertMap.put("link", "");

Как я могу публиковать данные с URL на этот DAO Я новичок в Java заранее спасибо

ОБНОВИТЬ

получил эту ошибку

ОШИБКА HTTP 405
Проблема с доступом / бэкэнд / тест. Причина:
Метод запроса ‘GET’ не поддерживается

Новый файл класса с использованием методов получения и установки

public class MysqlCall {public Object is_private;
public Object postby_id;
public Object title;

public Object getPostby_id() {
return postby_id;
}

public void setPostby_id(Object postby_id) {
this.postby_id = postby_id;
}

public Object getTitle() {
return title;
}

public void setTitle(String title) {
this.title = title;
}

public Object getIs_private() {
return is_private;
}

public void setIs_private(String is_private) {
this.is_private = is_private;
}

public Object getStatus() {
return status;
}

public void setStatus(String status) {
this.status = status;
}

public Object getPost_type_id() {
return post_type_id;
}

public void setPost_type_id(String post_type_id) {
this.post_type_id = post_type_id;
}

public Object getWall_type() {
return wall_type;
}

public void setWall_type(String wall_type) {
this.wall_type = wall_type;
}

public Object getPostto_id() {
return postto_id;
}

public void setPostto_id(String postto_id) {
this.postto_id = postto_id;
}

public Object getVertical_id() {
return vertical_id;
}

public void setVertical_id(String vertical_id) {
this.vertical_id = vertical_id;
}

public Object getLink() {
return link;
}

public void setLink(String link) {
this.link = link;
}

public Object status;
public Object post_type_id;
public Object wall_type;
public Object postto_id;
public Object vertical_id;
public Object link;

НОВЫЙ ДАО

public void creMysqlCall(MysqlCall call) throws Exception {
SimpleJdbcInsert simpleJdbcInsert = new SimpleJdbcInsert(masterJdbcTemplate).withTableName("posts")
.usingColumns("postby_id","title","is_private","post_type_id","status","wall_type","postto_id","vertical_id","link");
Map<String, Object> creInsertMap = Maps.newHashMap();
creInsertMap.put("postby_id", call.postby_id);
creInsertMap.put("title", call.title);
creInsertMap.put("is_private", call.is_private);
creInsertMap.put("post_type_id", call.post_type_id);
creInsertMap.put("status", call.status);
creInsertMap.put("wall_type", call.wall_type);
creInsertMap.put("postto_id", call.postto_id);
creInsertMap.put("vertical_id", call.vertical_id);
creInsertMap.put("link", call.link);

Сервисный файл

public void creMysqlCall(MysqlCall call) throws Exception {
creativityDao.creMysqlCall(call);
}

контроллер

// API для тестирования сервисного вызова
@RequestMapping (значение = «/ test», метод = RequestMethod.POST, потребляет = MediaType.APPLICATION_JSON_VALUE)

void creMysqlCall (вызов @RequestBody (required = true) MysqlCall) выдает Exception {

creativityService.creMysqlCall(call);

}

0

Решение

Вам нужно будет создать класс Value Object из вашего JSON с помощью getter и setters.

Тогда ваш контроллер будет выглядеть

@RequestMapping(value = "/test", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
void creMysqlCall(@RequestBody(required = true) MysqlCall call) throws Exception {
creativityService.creMysqlCall(call);
}

Убедитесь, что у вас есть Джексон в вашем классе, так что в вашем пом

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.6.0</version>
</dependency>
0

Другие решения

Это больше Spring MVC & Джексон вопрос.
Вы должны создать класс как:

public class MysqlCall {
private String postby_id;
/* the rest of the fields in JSON */
/* getters and setters */
}

А затем используйте аннотацию @RequestBody, чтобы отобразить ее:

@RequestMapping(value = "/test", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody Object creMysqlCall(@RequestBody(required = true) MysqlCall call) throws Exception {

//creativityService.creMysqlCall(call);

return call;
}

В DAO вы просто связываете параметры объекта с отображением sql.

0

По вопросам рекламы [email protected]