我使用servlet和tomcat 6.0创建了一个web服务。我创建了示例java应用程序来调用Web服务,它的工作正常。我需要在调用Web服务时发送一些数据。我在java应用程序中创建如下
StringEntity zStringEntityL = new StringEntity(zAPIInputStringP.toString());
zStringEntityL.setContentType(new BasicHeader(HTTP.CONTENT_TYPE,
"application/json"));
HttpParams aHttpParamsL = new BasicHttpParams();
HttpProtocolParams.setVersion(aHttpParamsL, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(aHttpParamsL, HTTP.UTF_8);
SchemeRegistry aSchemeRegistryL = new SchemeRegistry();
aSchemeRegistryL.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
ClientConnectionManager ccm = new ThreadSafeClientConnManager(aHttpParamsL, aSchemeRegistryL);
DefaultHttpClient client = new DefaultHttpClient(ccm, aHttpParamsL);
HttpPost aHttpPostL = new HttpPost(URL + zAPIName);
aHttpPostL.setHeader("Authorization", "Basic");
aHttpPostL.setEntity(zStringEntityL);
HttpResponse aHttpResponseL;
aHttpResponseL = client.execute(aHttpPostL);
这里“zAPIInputStringP”是我的JSON格式的数据 在webservice中我如何获取这些数据?我在eclispe中检查了调试模式,我无法找到它。
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
//How to get data?
}
请帮帮我。
答案 0 :(得分:2)
当您通过post方法将数据发送到servlet时,数据可通过输入流获得。以下是您的post方法的样子。
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String zAPIInputStringP = "";
BufferedReader in = new BufferedReader(new InputStreamReader(
request.getInputStream()));
String line = in.readLine();
while (line != null) {
zAPIInputStringP += line;
line = in.readLine();
}
}
您的JSON字符串包含在zAPIInputStringP
。
答案 1 :(得分:0)
这简单得多。基本上看起来像这样:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
response.setContentType("application/json");
// Get the printwriter object from response to write the required json object to the output stream
PrintWriter out = response.getWriter();
// Assuming your json object is **zStringEntityL**, perform the following, it will return your json object
StringEntity zStringEntityL = new StringEntity(zAPIInputStringP.toString());
out.print(zStringEntityL);
out.flush();
}