我正在使用 Servlet 來處理請求和響應。我使用以下代碼對我使用 webservice 轉租的請求進行 Servlet: 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 代碼。 @Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String commandid= request.getParameter("commandid"); System.out.println(commandid); }命令null從 web 服務接收。在webservice中如何獲取servlet中的數據?
2 回答

慕婉清6462132
TA貢獻1804條經驗 獲得超2個贊
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"));

千萬里不及你
TA貢獻1784條經驗 獲得超9個贊
您在請求正文中發送 JSON ,因此您需要獲取它:
String json = request.getReader().lines().collect(Collectors.joining());
轉換為 JSON:
JSONObject jsonObject = new JSONObject(json);
并獲取值:
String value = jsonObject.getString("commandid");
添加回答
舉報
0/150
提交
取消