我有一个API的URL,如果直接在chrome的高级rest客户端中运行,它可以正常工作。我希望此URL从我自己的REST API代码触发,该代码应在高级rest客户端中运行并将结果存储在变量中。 我怎么能这样做?
答案 0 :(得分:0)
使用Apache HttpClient库https://hc.apache.org/或其他一些第三方开源库来轻松编码。 如果你正在使用apache httpClient lib,请谷歌搜索示例代码。这里有一些小例子。
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet('http://site/MyrestUrl');
HttpResponse response = client.execute(request);
BufferedReader rd = new BufferedReader (new InputStreamReader(response.getEntity().getContent()));
String line = '';
while ((line = rd.readLine()) != null) {
System.out.println(line);
}
return (rd);
如果使用第三方jar有任何限制,你也可以使用普通的java。
HttpURLConnection conn = null;
try {
URL url = new URL("http://site/MyRestURL");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept", ""); // add your content mime type
if (conn.getResponseCode() != 200) {
throw new RuntimeException("Failed : HTTP error code : "
+ conn.getResponseCode());
}
BufferedReader br = new BufferedReader(new InputStreamReader(
(conn.getInputStream())));
String output;
while ((output = br.readLine()) != null) {
System.out.println(output);
}
conn.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
答案 1 :(得分:0)
在普通的java中,尝试这样。我的建议请尝试使用良好的开源休息/ http客户端。网中有很多例子。
String httpsUrl = "https://www.google.com/";
URL url;
try {
url = new URL(httpsUrl);
HttpsURLConnection con = HttpsURLConnection)url.openConnection();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}