【问题标题】:Call RestFull Web Service inside Servlet在 Servlet 中调用 RestFul Web Service
【发布时间】:2016-02-14 19:01:07
【问题描述】:

我的 java web 项目中有一个标准的 HttpServlet。我使用 Netbeans。我想在 servlet 中调用 Restfull Web 服务,然后像 JSON 一样捕获响应并填充 JSP。 我试图在网上找到,但我没有找到任何东西。

谢谢

【问题讨论】:

  • 我不太明白这个问题,你到底在找什么?你想要一个如何调用restfull web 服务的代码示例吗?还是要调用自己创建的休息服务?
  • 一个例子!你不明白什么?

标签: java web-services rest servlets web


【解决方案1】:

这里是一个 HttpPost 的例子:

    try {
            HttpPost httpPost = new HttpPost("https://exampleurl/providerexample/api/v1/loansforexample"
            );
            StringEntity params;
            params = new StringEntity("{"
                    + "\"clientId\": \"" + "2" + "\","
                    + "\"productId\": \"" + "1" + "\"," 
                    + "\"locale\": \"" + "en" + "\"}");

            httpPost.addHeader("Content-Type", "text/html"); //or text/plain
            httpPost.addHeader("Accept-Encoding", "gzip, deflate, sdch");
            httpPost.setEntity(params);
            HttpResponse response = client.execute(httpPost);
            int statuscode = response.getStatusLine().getStatusCode();
            String responseBody = EntityUtils.toString(response.getEntity());
            if (statuscode == 200) {
                System.out.println(responseBody);
            }
            if (statuscode != 200) {
                System.out.println(responseBody);
//                JSONObject obj = new JSONObject(responseBody);
//                JSONArray errors = obj.getJSONArray("errors");
//                String errorMessage = "";
//                if (errors.length() > 0) {
//                    errorMessage = errors.getJSONObject(0).getString("developerMessage");
            }
        }
        catch (Exception ex) {
            ex.printStackTrace();
            ex.getMessage();
        }

HttpGet 几乎相同。

【讨论】:

  • 好的,谢谢。但我的请求(GET/POST)有参数文本,响应是 JSON
  • @LorenzoSogliani 如果这是您自己的 RESTful web 服务,您可以在 RESTFULsomethingFacade 中更改 REST 服务生成的内容,如果相反,您可以在以下代码行中更改它:httpPost。 addHeader("内容类型", "应用程序/json"); to: httpPost.addHeader("Content-Type", "随便你");
  • @LorenzoSogliani 我编辑了代码,如您所见,我现在发布 text/html,text/plain 是您可以使用的另一个格式示例。
  • 好的,谢谢。今晚我正在测试它。
  • @LorenzoSogliani 很高兴为您提供帮助 :)
猜你喜欢
  • 2012-06-07
  • 1970-01-01
  • 2016-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-11
相关资源
最近更新 更多