@Akhme_v
Java-программист

Как реализовать отправку и получение JSON сервером и клиентом на Android с помощью Spring?

Как реализовать отправку и получение 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;
	}
}
  • Вопрос задан
  • 686 просмотров
Пригласить эксперта
Ответы на вопрос 1
@aol-nnov
идешь в гугл, набираешь "retrofit spring example" и первая ссылка будет как раз то, что ты ищешь :)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы