public java.lang.StringBuffer getRequestURL()
我正在使用此方法调用另一个网站的API,该网站提供XML数据作为响应。这是与HTTPrequest / response一起使用的正确方法吗? ?
答案 0 :(得分:2)
没有。您应该使用new URL(url).openConnection()
或某些抽象,例如http components或rest-client
答案 1 :(得分:0)
如果您想从Servlet中发出HTTP请求,您可以像在任何进程中那样进行。像这样:
public static void main(String[] args) throws Exception {
URL url = new URL("http://www.targetdomain.com/api?key1=value1&key2=value2...");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(5000); // 5 seconds
conn.setRequestMethod("GET");
conn.connect();
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
StringBuffer bf = new StringBuffer();
while ((line = rd.readLine()) != null) {
bf.append(line);
}
conn.disconnect();
//... pass bf to an XML parser and do your processing...
}
根据您正在使用的任何XML解析器,您可以跳过缓冲响应并将其放入StringBuffer,而是直接将解析器传递给响应InputStream。