我知道曾经有一种方法可以使用 Apache Commons 获取它,如此处所述:
http://hc.apache.org/httpclient- legacy/apidocs/org/apache/commons/httpclient/HttpMethod.html
......这里有一个例子:
http://www.kodejava.org/examples/416.html
…但我相信这已被弃用。
有没有其他方法可以在 Java 中发出 http get 请求并将响应主体作为字符串而不是流获取?
我能想到的每个库都会返回一个流。您可以使用IOUtils.toString()Apache Commons IO来读取InputStream一个String方法调用。例如:
IOUtils.toString()
InputStream
String
URL url = new URL("http://www.example.com/"); URLConnection con = url.openConnection(); InputStream in = con.getInputStream(); String encoding = con.getContentEncoding(); encoding = encoding == null ? "UTF-8" : encoding; String body = IOUtils.toString(in, encoding); System.out.println(body);
更新: 我将上面的示例更改为使用响应中的内容编码(如果可用)。否则它将默认使用 UTF-8 作为最佳猜测,而不是使用本地系统默认值。