0

我使用 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 格式的数据。
在网络服务中,我需要如何获取这些数据?我在 eclispe 中检查了调试模式,我无法找到它。

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
{
    //How to get data?
}

请帮帮我。

4

2 回答 2

2

当您通过 post 方法将数据发送到 servlet 时,数据可通过input stream获得。以下是您的 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.

于 2012-08-14T13:00:12.723 回答
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();
    }
于 2012-08-14T12:00:22.280 回答