Как реализовать отправку и получение JSON сервером и клиентом на Android с помощью Spring?
Написал такой контроллер на сервере:
@RestController
@RequestMapping(value = "/students/")
public class AtheniumController {
private final AtheniumService service;
@Autowired
public AtheniumController(AtheniumService service) {
this.service = service;
}
@RequestMapping
(value = "student/{studentSurname}, {studentName}, {studentPatronymic}, {studentNumber}", method = RequestMethod.POST)
@ResponseBody
public String checkLogin(@PathVariable("studentSurname") String studentSurname,
@PathVariable("studentNumber") String studentNumber,
@PathVariable("studentPatronymic") String studentPatronymic,
@PathVariable("studentName") String studentName) {
Student lvStudent = new Student(studentSurname, studentName, studentPatronymic, Long.valueOf(studentNumber));
if (service.checkLogin(lvStudent)) {
return "OK";
} else {
return "Проверьте введенные данные! (Так же возможна проблема в серверах ДГУ)";
}
}
@RequestMapping(value = "marks", method = RequestMethod.GET)
@ResponseBody
public List<Mark> getMarks() {
return service.getMarks();
}
@RequestMapping(value = "marks/{id}", method = RequestMethod.DELETE)
@ResponseBody
public void delete(@PathVariable long id) {
service.remove(id);
}
}
Он получает данные студента с клиента, и проверяет, существует ли такой, если да - то сохраняет в БД. Потом клиент может получить оценки и тд.
Не могу отправить данные с клиента:
public class RequestRegister extends AsyncTask<Student, Void, String> {
BufferedOutputStream bos;
@Override
protected String doInBackground(Student... pStudents) {
try {
URL url = null;
try {
url = new URL(Constants.POST_STUDENT);
} catch (MalformedURLException pE) {
pE.printStackTrace();
}
HttpURLConnection urlConnection = null;
try {
assert url != null;
urlConnection = (HttpURLConnection) url.openConnection();
} catch (IOException pE) {
pE.printStackTrace();
}
assert urlConnection != null;
urlConnection.setRequestProperty("Content-Type", "application/json");
urlConnection.setRequestMethod("POST");
urlConnection.setDoInput(true);
urlConnection.setDoOutput(true);
urlConnection.connect();
JSONObject jo = new JSONObject();
jo.put("studentSurname", pStudents[0].getStudentSurname());
jo.put("studentSurname", pStudents[0].getStudentName());
jo.put("studentSurname", pStudents[0].getStudentPatronymic());
jo.put("studentSurname", pStudents[0].getStudentNumber());
bos = new BufferedOutputStream(urlConnection.getOutputStream());
bos.write(jo.toString().getBytes());
String result = urlConnection.getResponseMessage();
} catch (JSONException | IOException e) {
e.printStackTrace();
} finally {
try {
bos.flush(); //очищает поток output-a
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
//urlConnection.disconnect();
}
return null;
}
}