Прежде всего, ваша строка запроса недопустима.
params = "?id=test&data=testdata";
Это должно было быть
params = "id=test&data=testdata";
Значение ?
допустимо только при объединении его с URL-адресом запроса.как строка запроса GET.Вам не следует использовать его, когда вы хотите записать его как тело запроса POST.
Сказал, что, если этот сервис не должен возвращать HTML (например, обычный текст, JSON, XML, CSV и т. Д.), Тогда используйтесервлет.Вот пример, который выдает открытый текст.
String id = request.getParameter("id");
String data = request.getParameter("data");
response.setContentType("text/plain");
response.setContentEncoding("UTF-8");
response.getWriter().write(id + "," + data);
Если предполагается, что этот сервис возвращает HTML, используйте JSP.Измените URL-адрес, чтобы он указывал на JSP.
String url = "http://LOCALHOST:8080/services/getdata.jsp";
А затем добавьте следующее в шаблон JSP для печати параметров запроса.
${param.id}
${param.data}
В любом случае вы должны иметь возможностьчтобы получить результат (тело ответа), прочитав URLConnection#getInputStream()
.
См. также:
Вне зависимости от конкретной проблемы, вы не принимаете во внимание кодировку символов.Я настоятельно рекомендую это сделать.См. Также ссылку выше для подробных примеров.