调用url并使用HttpGet发送JSONObject

时间:2016-10-13 02:14:06

标签: java web-services maven httpclient http-get

我目前正在开发一个Java应用程序项目。这是一个现有的应用程序,我被要求修改它。他们说我必须创建一个调用另一个应用程序的Web服务(调用是url),然后从我正在修改的应用程序的ini文件中将数据传递给它。我对这种东西很新,我真的回家有人可以帮助我。所以这里是写入ini文件的代码:

               common.writeIniFileIdentify("PV-ID", PVIDNo);
               common.writeIniFileIdentify("PALMUS-ID", SerialNo);

我把它转换为字符串:

               Properties p = new Properties();
               p.load(new FileInputStream("C:/PALMUS-PV/PVInfo.ini"));
               String pvid = p.getProperty("PV-ID");
               String palmusid = p.getProperty("PALMUS-ID");
               System.out.println(pvid);
               System.out.println(palmusid);

               this.sendPVDetails(pvid, palmusid); //this will pass the data to sendPVDetails method

这是我使用的HttpGet(刚在互联网上看到这个):

public void sendPVDetails(String pvid, String palmusid) {
      try {

        DefaultHttpClient httpClient = new DefaultHttpClient();
        HttpGet getRequest = new HttpGet(
                "https://url.of.the.another.application");

        JSONObject jsonObject = new JSONObject();
        jsonObject.put("PV-ID", pvid);
        jsonObject.put("PALMUS-ID", palmusid);

        getRequest.addHeader("accept", "application/json");

        HttpResponse response = httpClient.execute(getRequest);

        if (response.getStatusLine().getStatusCode() != 200) {
            throw new RuntimeException("Failed : HTTP error code : "
               + response.getStatusLine().getStatusCode());
        }

        BufferedReader br = new BufferedReader(
                         new InputStreamReader((response.getEntity().getContent())));

        String output;
        System.out.println("Output from Server .... \n");
        while ((output = br.readLine()) != null) {
            System.out.println(output);
        }           

        httpClient.getConnectionManager().shutdown();

      } catch (ClientProtocolException e) {

        e.printStackTrace();

      } catch (IOException e) {

        e.printStackTrace();
      }

    }

我对HttpGet如何工作有点困惑因为它是我第一次看到这种代码而java对我来说也是新的。他们说我必须使用'return ResponseEntity',但它仅适用于控制器,我使用的方法不是控制器。我真的希望有人能指导我。先感谢您。

1 个答案:

答案 0 :(得分:1)

HTTP GET方法用于从给定URI检索内容。由于我们只想在URI上调用GET,因此不会涉及任何内容。为了将某些内容发布(发送)到给定的URI,您需要使用HTTP POST。您可以使用HttpPost来满足您的要求。Here是使用http客户端库的一个很好的示例。