我正在使用Servlet处理请求和响应。
我已使用以下代码对我的请求进行Servlet调用,以使用Web服务进行转租:
JSONObject parans = new JSONObject();
parans.put("commandid", "Enamu7l");
System.out.println("parans = " + parans);
Client restClient = Client.create();
WebResource webResource = restClient.resource("URL");
ClientResponse resp = webResource.accept(MediaType.APPLICATION_JSON)
.post(ClientResponse.class, parans.toJSONString());
这是我的servlet代码,用于接收数据。
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String commandid= request.getParameter("commandid");
System.out.println(commandid);
}
commandid从Web服务接收null
。
在Web服务中如何获取servlet中的数据?
答案 0 :(得分:1)
WebResource不会将数据作为url的一部分发送,因此您可以不使用request.getParameter
。数据使用post方法作为请求正文发送。使用读取器读取数据。
StringBuilder sb = new StringBuilder();
while ((s = request.getReader().readLine()) != null) {
sb.append(s);
}
JSONObject jSONObject = new JSONObject(sb.toString());
System.out.println(jSONObject.getString("commandid"));
答案 1 :(得分:0)
您要在请求正文中发送JSON,因此您需要获取它:
String json = request.getReader().lines().collect(Collectors.joining());
转换为JSON:
JSONObject jsonObject = new JSONObject(json);
并获取值:
String value = jsonObject.getString("commandid");