【发布时间】:2013-02-16 12:40:26
【问题描述】:
这里我使用 HttpClient 发布 JSON 数据。但我无法读取其他应用程序上的数据。当我执行 request.getParameter("username") 时,它返回 null。我的两个应用程序都部署在同一台服务器上。请告诉我我做错了什么。谢谢
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost postRequest = new HttpPost("http://localhost:8080/AuthenticationService/UserIdentificationServlet");
postRequest.setHeader("Content-type", "application/json");
StringEntity input = new StringEntity("{\"username\":\""+username+"\"}");
input.setContentType("application/json");
postRequest.setEntity(input);
HttpResponse postResponse = httpClient.execute(postRequest);
BufferedReader br = new BufferedReader(new InputStreamReader((postResponse.getEntity().getContent())));
String output;
System.out.println("Output from Server .... \n");
while ((output = br.readLine()) != null) {
System.out.println(output);
}
httpClient.getConnectionManager().shutdown();
}
【问题讨论】:
-
您需要了解application/x-www-form-urlencoded 即表单请求参数(
HttpServletRequest#getParameter()) 与application/json之间的区别,后者的请求正文为json(HttpServletRequest#getInputStream())。
标签: java apache-httpclient-4.x